git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [ANNOUNCE] Git v2.16.0-rc0

From
Bryan Turner <bturner@atlassian.com>
Date
Jan 3, 2018, 05:41 UTC
Message-ID
<CAGyf7-EeBHwg50+MnUGF6=aE91TJY_iYSrg5gF1rp8ApsTsrvw@mail.gmail.com>
In-Reply-To
<20180103050730.GA87855@aiede.mtv.corp.google.com>
On Tue, Jan 2, 2018 at 9:07 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 26 quoted lines
> Hi Bryan,
>
> Bryan Turner wrote:
>
>> Our test environment is still on Ubuntu 12.04 LTS (it's a long story,
>> but one I doubt is unique to us), which means it's using OpenSSH 5.9.
>> ssh -G was added in OpenSSH 6.8 [1], circa March 2015, which means the
>> "auto" detection "fails" and chooses "simple" instead of "ssh". But
>> OpenSSH 5.9 _does_ support -4, -6 and -p. As a result, commands which
>> have been working without issue on all previous versions of Git start
>> to fail saying
>>
>> git -c gc.auto=0 -c credential.helper= fetch --force --prune --progress ssh://localhost:64281/repo.git +refs/*:refs/*' exited with code 128 saying: fatal: ssh variant 'simple' does not support setting port
>
> Hm, that's not expected.  git-config(1) says:
>
>         By default, Git determines the command line arguments to use
>         based on the basename of the configured SSH command
>         (configured using the environment variable GIT_SSH or
>         GIT_SSH_COMMAND or the config setting core.sshCommand). If the
>         basename is unrecognized, Git will attempt to detect support
>         of OpenSSH options by [...]
>
> So my first question is why the basename detection is not working for
> you.  What value of GIT_SSH, GIT_SSH_COMMAND, or core.sshCommand are
> you using?

So I'd been digging further into this for the last hour because I wasn't seeing quite the behavior I was expecting when I ran Git from the command line on Ubuntu 12.04 or 14.04, and this nudged me to the right answer: We're setting GIT_SSH to a wrapper script. In our case, that wrapper script is just calling OpenSSH's ssh with all the provided arguments (plus a couple extra ones), but because we're setting GIT_SSH at all, that's why the auto variant code is running. That being the case, explicitly setting GIT_SSH_VARIANT=ssh may be the correct thing to do, to tell Git that we want to be treated like "normal" OpenSSH, as opposed to expecting Git to assume we behave like OpenSSH (when the Android repo use case clearly shows that assumption also doesn't hold).

Based on that, I'm not sure if you _actually_ need to change anything, and I apologize for not turning up that we were setting GIT_SSH before I bothered you.

Thanks immensely for looking into it, Jonathan, and my apologies again for wasting your time! Bryan Turner

Previous: Jonathan NiederNext: Jonathan Nieder
Message 8 of 20 in “[ANNOUNCE] Git v2.16.0-rc0”
  1. Junio C HamanoDec 29, 2017
  2. Kaartic SivaraamDec 29, 2017
  3. Paul SmithDec 29, 2017
  4. Thomas GummererJan 4, 2018
  5. Paul SmithJan 4, 2018
  6. Bryan TurnerJan 3, 2018
  7. Jonathan NiederJan 3, 2018
  8. Bryan TurnerJan 3, 2018
  9. Jonathan NiederJan 3, 2018
  10. Junio C HamanoJan 3, 2018
  11. Jonathan NiederJan 3, 2018
  12. Jeff KingJun 8, 2018
  13. Junio C HamanoJun 12, 2018
  14. Jeff KingJun 14, 2018
  15. Jonathan NiederJun 14, 2018
  16. Jeff KingJun 14, 2018
  17. Jonathan NiederJun 15, 2018
  18. Jeff KingJun 15, 2018
  19. Jeff KingJun 15, 2018
  20. Johannes SchindelinJan 4, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.