putty-w-args-v3
dscho
tagged this
01 Feb 11:57
We already handle PuTTY's plink and TortoiseGit's tortoiseplink in GIT_SSH by automatically using the -P option to specify ports, and in tortoiseplink's case by passing the --batch option. For users who need to pass additional command-line options to plink, this poses a problem: the only way to do that is to use GIT_SSH_COMMAND, but Git does not handle that specifically, so those users have to manually parse the command-line options passed via GIT_SSH_COMMAND and replace -p (if present) by -P, and add --batch in the case of tortoiseplink. This is error-prone and a bad user experience. To fix this, the changes proposed in this patch series introduce handling this by splitting the GIT_SSH_COMMAND value and treating the first parameter with the same grace as GIT_SSH. To counter any possible misdetection, the user can also specify explicitly via GIT_SSH_VARIANT or ssh.variant which SSH variant they are using. Changes relative to v2: - touched up the documentation for ssh.variant to make it even easier to understand - free()d the config variable - completely refactored the code to fulfil Junio's burning desire to avoid split_cmdline() when unnecessary It is quite preposterous to call this an "iteration" of the patch series, because the code is so different now. I say this because I want to caution that this code has not been tested as thoroughly, by far, as the first iteration. The primary purpose of code review is correctness, everything else is either a consequence of it, or a means to make reviewing easier. That means that I highly encourage those who pushed for these extensive changes that make the patch series a lot less robust to balance things out by at least *rudimentary* testing. Johannes Schindelin (1): git_connect(): factor out SSH variant handling Junio C Hamano (1): connect: rename tortoiseplink and putty variables Segev Finer (2): connect: handle putty/plink also in GIT_SSH_COMMAND connect: Add the envvar GIT_SSH_VARIANT and ssh.variant config Documentation/config.txt | 11 +++++++ Documentation/git.txt | 6 ++++ connect.c | 75 ++++++++++++++++++++++++++++++++++++------------ t/t5601-clone.sh | 41 ++++++++++++++++++++++++++ 4 files changed, 114 insertions(+), 19 deletions(-) base-commit: 8f60064c1f538f06e1c579cbd9840b86b10bcd3d Submitted-As: https://public-inbox.org/git/cover.1485950225.git.johannes.schindelin@gmx.de In-Reply-To: https://public-inbox.org/git/2ff29a4d00e0e13d460122d8008e762361ca90aa.1483358673.git.johannes.schindelin@gmx.de In-Reply-To: https://public-inbox.org/git/cover.1485442231.git.johannes.schindelin@gmx.de
Assets 2
-
2017-02-01T11:57:06Z -
2017-02-01T11:57:06Z -