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.

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.

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?

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?

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?

Thanks,
Mark Waite

Reply via email to