diff options
author | Segev Finer <segev208@gmail.com> | 2017-02-01 13:01:16 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-02-01 10:57:53 -0800 |
commit | dd33e07766f883c1bbfd20482123e143028f0af6 (patch) | |
tree | a4becb91dcf6f626b3b74ccfc31662a50ec6c30c /connect.c | |
parent | e2824e47e792ad1b2862108bc78af4d3468633fb (diff) | |
download | git-dd33e07766f883c1bbfd20482123e143028f0af6.tar.gz |
connect: Add the envvar GIT_SSH_VARIANT and ssh.variant config
This environment variable and configuration value allow to
override the autodetection of plink/tortoiseplink in case that
Git gets it wrong.
[jes: wrapped overly-long lines, factored out and changed
get_ssh_variant() to handle_ssh_variant() to accomodate the
change from the putty/tortoiseplink variables to
port_option/needs_batch, adjusted the documentation, free()d
value obtained from the config.]
Signed-off-by: Segev Finer <segev208@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'connect.c')
-rw-r--r-- | connect.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -694,10 +694,14 @@ static const char *get_ssh_command(void) static int handle_ssh_variant(const char *ssh_command, int is_cmdline, int *port_option, int *needs_batch) { - const char *variant; + const char *variant = getenv("GIT_SSH_VARIANT"); char *p = NULL; - if (!is_cmdline) { + if (variant) + ; /* okay, fall through */ + else if (!git_config_get_string("ssh.variant", &p)) + variant = p; + else if (!is_cmdline) { p = xstrdup(ssh_command); variant = basename(p); } else { @@ -717,7 +721,8 @@ static int handle_ssh_variant(const char *ssh_command, int is_cmdline, } if (!strcasecmp(variant, "plink") || - !strcasecmp(variant, "plink.exe")) + !strcasecmp(variant, "plink.exe") || + !strcasecmp(variant, "putty")) *port_option = 'P'; else if (!strcasecmp(variant, "tortoiseplink") || !strcasecmp(variant, "tortoiseplink.exe")) { |