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

Re: git 2.16, Jenkins git client plugin, and ""

From
Bryan Turner <bturner@atlassian.com>
Date
Jan 25, 2018, 00:31 UTC
Message-ID
<CAGyf7-Hb+w23sbW8rZxmLXBDO-+kBDFwirN3siSNwveYdX4qPg@mail.gmail.com>
In-Reply-To
<CAM2y_jWnpDSA8kE+9z1jKW0dCzjOz053HrD479qc0ZjL13Gabw@mail.gmail.com>
On Wed, Jan 24, 2018 at 3:55 PM, Mark Waite <mwaite@cloudbees.com> wrote:
Show 6 quoted lines
> It appears that git 2.16.0 and 2.16.1 have introduced a change which
> surprises the Jenkins git client plugin.
>
> Git 2.16.0 and 2.16.1 on Linux both report "fatal: ssh variant
> 'simple' does not support setting port" when used in the context of
> the Jenkins git client plugin.

We noticed a similar issue in Bitbucket Server's tests, related to us using a wrapper script with the GIT_SSH variable. Some further discussion is available in [1].

Show 12 quoted lines
>
> The solution we've accepted into the git client plugin source code is
> to set the environment variable "GIT_SSH_VARIANT=ssh".  That allows
> the failing case to pass, and does not seem to harm older versions of
> git.
>
> The documentation at https://git-scm.com/docs/git says that
> GIT_SSH_VARIANT "overrides Git’s autodetection whether
> GIT_SSH/GIT_SSH_COMMAND/core.sshCommand refer to OpenSSH, plink or
> tortoiseplink."
>
> I haven't seen the same message from Git 2.16.1 for Windows.
Our Windows builds didn't seem to fail for this either, which was interesting.
Show 8 quoted lines
>
> The Jenkins bug report
> (https://issues.jenkins-ci.org/browse/JENKINS-49111) describes the
> user experience.
>
> Is the GIT_SSH_VARIANT solution expected to be used by git consumers
> like the Jenkins git client plugin when passing credential information
> through environment variables like SSH_ASKPASS?

The expectation seems to be that if you use GIT_SSH or GIT_SSH_COMMAND, you'll also use GIT_SSH_VARIANT to tell Git what to expect, because it doesn't (shouldn't?) make assumptions, starting in 2.16, that your custom SSH uses OpenSSH syntax.

Show 8 quoted lines
>
> I see "ssh", "plink", and "tortoiseplink" as values of GIT_SSH_VARIANT
> used in tests, and "auto", "putty", and "simple" used in the source
> code in addition to "ssh", "plink", and "tortoiseplink".  What are the
> allowed values for GIT_SSH_VARIANT?
>
> What is the recommended value so that the Jenkins git client plugin
> can remain most compatible with previous behavior?

"ssh" is probably the most compatible, because I'm pretty sure prior to 2.16 that behavior was the assumed behavior.

Show 7 quoted lines
>
> No value was assigned previously to GIT_SSH_VARIANT in the Jenkins git
> client plugin.  I was expecting that git would choose "ssh" as the
> default value for GIT_SSH_VARIANT, rather than apparently choosing
> "simple".
>
> Is this a bug, or is this the new, intentional behavior of git?

It's intentional. There was some discussion (again, see [1]) about whether the change needed further changes, but it doesn't appear any further changes were made.

>
> Thanks,
> Mark Waite
[1]: https://public-inbox.org/git/CAGyf7-FQp4q2vvH1ponQvmVDTu0hiMSK1JKytQZ4O1i0MCnz7g@mail.gmail.com/

Hope this helps! Bryan

Previous: Mark WaiteNext: Mark Waite
Message 2 of 3 in “git 2.16, Jenkins git client plugin, and ""”
  1. Mark WaiteJan 24, 2018
  2. Bryan TurnerJan 25, 2018
  3. Mark WaiteJan 25, 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.