You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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!
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 havingjj git
commands literally shell out togit
, 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 executegit
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
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:
ssh://
remote paths not supported. #2931jj git push
is not working for me on Windows #3322jj
can't set up new gitcredential.helper
entries #4101jj git fetch ...
/jj git clone ...
/ etc. with a FIDO2 (resident) key #4591jj git push
to GitHub repository: can't authenticate on macOS #4870Clone/fetch/push/pull:
jj git push
#1957jj git fetch --branch main
should fetch tags #2295SSL error: unknown error
#3851sso
origin fail withError: invalid argument: 'port'; class=Invalid (3)
#4177The text was updated successfully, but these errors were encountered: