-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Mingit-busybox unable to clone from a proxyed ssh server. #3285
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
Comments
Does it also work if you copy it to |
No. And my first try is |
Can a busybox named I can not find how mingit-busybox are built and have no idea how it utilizes |
It is necessary to keep After investigating make-file-list.sh and release.sh, the only approach I can provide is this dirty hack. diff --git i/mingit/release.sh w/mingit/release.sh
index af65e2b..300e67a 100755
--- i/mingit/release.sh
+++ w/mingit/release.sh
@@ -146,6 +146,18 @@ die "Could not copy libexec/git-core/*.exe"
test ! -f "$TARGET" || rm "$TARGET" || die "Could not remove $TARGET"
+
+if test -n "$MINIMAL_GIT_WITH_BUSYBOX"
+then
+ mkdir -pv "$SCRIPT_PATH"/root/usr/bin/
+ cp -r /mingw64/bin/busybox.exe "$SCRIPT_PATH"/root/usr/bin/sh.exe
+fi
+
echo "Creating .zip archive" &&
(cd / && 7za a -mx9 "$TARGET" $LIST "$SCRIPT_PATH"/root/*) &&
echo "Success! You will find the new MinGit at \"$TARGET\"."
+
+if test -n "$MINIMAL_GIT_WITH_BUSYBOX"
+then
+ rm -rf "$SCRIPT_PATH"/root/usr/
+fi
|
Calling |
No. The MINGW programs, in contrast, live in
Part of it is still a really ugly hack: 1dbbcfb Another part is setting the environment variable
What does "compatible" mean? If it means compatible with the MSYS version of OpenSSH's ideas what constitutes a path (see the If it means POSIX-compliant (without funny ideas that POSIX requires Unix-style paths, which it definitely does not, Exhibit A: VMS), then BusyBox should be good enough.
Yep, that's a dirty hack all right ;-) I am not sure about the
That could potentially be a bug in our fork of BusyBox-w32. But I am more worried about the requirements to that local shell by OpenSSH. In any case, I would much rather have BusyBox' shell be executed as So my less favorite solution is to copy BTW we can easily override the shell to be used via the environment variable Now that I thought about it for a moment, there is yet another solution. We already have the problem of hard-linked files: Git's own "built-ins" are hard linked copies of |
It is impossible to seperately sett
According to man pages of ssh_config,
It seems that out hacked busybox-w32 tries to emulate msys path. Is msys busybox more suitable?
Great technique! There is a good target, |
True. But we can set Speaking of which: the current method of falling back to using BusyBox if a given command was not found on the Another idea I had was to not copy
Right, if you use forward slashes, it tries to emulate that an "absolute" path is relative to the installation root, via
That would take away almost the complete speed benefit of BusyBox-w32's not using that POSIX emulation layer, the MSYS2 runtime. |
This goes too far for solving this issue. I provided some workarounds in the first comment for searching for solution. |
Would it really? |
My fault. Sorry. I thought now that this issue thread is mixed up with #1439, we can continue out discussion there. |
As we must keep msys part, I think use |
What about users who think that their hooks that use Bash-isms should keep working? MinGit is used e.g. inside Visual Studio, and there are so many Visual Studio users out there that even if only 0.01% of them use hook scripts with Bash-isms, we're talking about thousands of users. |
If we want mingit-busybox to be able to replace mingit completely in the future, we will face this problem too. Or we should keep |
Hardlinks are incompatible with |
@ur4t could I ask you to test this with the just-generated artifacts from https://dev.azure.com/git-for-windows/git/_build/results?buildId=80233&view=artifacts&pathAsName=false&type=publishedArtifacts? Like, copy |
Sorry for this belated response. In the new release (2.32.0.windows.2) this |
|
|
Yes. For more information as contexts,
After whether to keep providing |
@ur4t I fear there is a misunderstanding there. |
The entire point of the BusyBox variant of MinGit is to avoid having to use MSYS2 resources unnecessarily. But `sh.exe` slipped through the net, by virtue of being listed in the `sh` dependency (provided by `bash`) that comes in via openssh -> heimdal -> heimdal-libs -> libedit -> sh. This was pointed out in git-for-windows/git#3285 (comment) Let's exclude it specifically. Signed-off-by: Johannes Schindelin <[email protected]>
Yes I know that is not busybox at all. I was thinking that:
Though not perfect, current solution (provide a busybox Could we close this issue and record todos and blockers in #1439? |
Uh oh!
There was an error while loading. Please reload this page.
Workarounds
i. Gain a working
ssh.exe
, such as Windows bundled openssh (since Windows 10 1809), or download from its upstream.ii. Let git recognize it: Add an environment variable
GIT_SSH
, which contains path of aforementionedssh.exe
. Or make the workingssh.exe
in$PATH
while having removed$GIT_INSTALL_ROOT/usr/bin/ssh.exe
ssh.exe
to work:Copy
$GIT_INSTALL_ROOT/mingw64/bin/busybox.exe
to$GIT_INSTALL_ROOT/usr/bin/sh.exe
.Setup
Actually previous versions act the same way.
defaults?
Details
Workaround
Simply copy
/mingw64/bin/busybox.exe
to/usr/bin/sh.exe
.The text was updated successfully, but these errors were encountered: