Git silently broke push-options over ssh?
- From
- Sven Strickroth <sven@cs-ware.de>
- Date
- Oct 22, 2021, 17:27 UTC
- Message-ID
- <4aef40f2-43f8-eab3-a840-6e76c8b4afbb@cs-ware.de>
Hi,
I'm using Git (for Windows) 2.33.1 and using push-options as described on <https://docs.gitlab.com/ee/user/project/push_options.html> does not work any more (IIRC it used to work with Git 2.16 and 2.17).
If I understood <https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html> correctly I have to enable the Git protocol version 2 and then the push options should work.
Now, when I try to use push options on Windows it does not work. I tried to debug it:
D:\TortoiseGit>set GIT_TRACE=2 D:\TortoiseGit>set GIT_SSH=ssh.exe D:\TortoiseGit>set GIT_SSH_VARIANT=ssh D:\TortoiseGit>set GIT_PROTOCOL=version=2 D:\TortoiseGit>git -c protocol.version=2 -c ssh.variant=ssh -c ssh.command=ssh push -v -o ci.skip origin master~23:testing 17:36:06.285346 exec-cmd.c:237 trace: resolved executable dir: C:/Program Files/Git/mingw64/bin 17:36:06.285346 git.c:455 trace: built-in: git push -v -o ci.skip origin 'master~23:testing' Pushing to gitlab.com:tortoisegit/tortoisegit.git 17:36:06.295270 run-command.c:666 trace: run_command: unset GIT_CONFIG_PARAMETERS GIT_PREFIX; ssh.exe git@gitlab.com 'git-receive-pack '\''tortoisegit/tortoisegit.git'\'''
As you can see, the "-o SendEnv" parameter not passed to ssh.exe and, therefore, I think the push option is not transferred to the server.
According to <https://github.com/git-for-windows/git/issues/3486> the reason is a commit that was shipped with Git 2.18 (in 2018):
<https://github.com/git/git/commit/1aa8dded3afff28d8f4c24a97b237a0d9e633173>
How to use push options with Git over SSH?
-- Best regards, Sven Strickroth PGP key id F5A9D4C4 @ any key-server