Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FR: Have networked jj git commands shell out to git #4979

Open
arxanas opened this issue Nov 26, 2024 · 0 comments
Open

FR: Have networked jj git commands shell out to git #4979

arxanas opened this issue Nov 26, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@arxanas
Copy link
Collaborator

arxanas commented Nov 26, 2024

Is your feature request related to a problem? Please describe.

Many jj git commands fail on less common setups, oftentimes because libgit2 doesn't support certain features (see additional context). We've discussed having jj git commands literally shell out to git, rather than using the libgit2 implementation, most recently in #4937 (comment). I'm opening this issue to justify and track that proposal.

Describe the solution you'd like

Change jj git commands to execute git directly where appropriate.

This is not risk-free. For example, git-branchless does this and instead has issues like arxanas/git-branchless#433 (note that it tries to run git in the background and communicate via stdin/stdout). But there are substantially fewer networking-related issues there, so it seems like a better default state of affairs for most users.

Describe alternatives you've considered

  • Continue using libgit2: It seems like there's a significant number of issues caused by lack of support in libgit2, to the point that it impedes new and existing users, and we don't have the bandwidth or expertise to address them all.
  • Switch to Gitoxide: I don't think Gitoxide currently supports all of these workflows, and might not in the future. Gitoxide even shells out to git at present for certain use-cases (reading certain config?).

Additional context

Here's my enumeration of issues that might be resolved or resolveable by shelling out to Git. It would be nice if we could mostly solve them with a single mechanism!

SSH:

Clone/fetch/push/pull:

@arxanas arxanas added the enhancement New feature or request label Nov 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant