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