path: root/Documentation
diff options
authorJunio C Hamano <>2017-12-06 17:23:45 (GMT)
committerJunio C Hamano <>2017-12-06 17:23:45 (GMT)
commitef470364448b6d5de159c3a961c1b1e8283d1dbc (patch)
treeb52a8b297d62ad5c14a8251f4942c5dc2ae99601 /Documentation
parent4c6dad0059b2b5d1ea996ccf67f93224955b07b4 (diff)
parent233cd282ad71e667082bae45b3a73e947daa158b (diff)
Merge branch 'jn/ssh-wrappers'
The ssh-variant 'simple' introduced earlier broke existing installations by not passing --port/-4/-6 and not diagnosing an attempt to pass these as an error. Instead, default to automatically detect how compatible the GIT_SSH/GIT_SSH_COMMAND is to OpenSSH convention and then error out an invocation to make it easier to diagnose connection errors. * jn/ssh-wrappers: connect: correct style of C-style comment ssh: 'simple' variant does not support --port ssh: 'simple' variant does not support -4/-6 ssh: 'auto' variant to select between 'ssh' and 'simple' connect: split ssh option computation to its own function connect: split ssh command line options into separate function connect: split git:// setup into a separate function connect: move no_fork fallback to git_tcp_connect ssh test: make copy_ssh_wrapper_as clean up after itself
Diffstat (limited to 'Documentation')
1 files changed, 16 insertions, 10 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 64bdce8..c1598ee 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -2108,16 +2108,22 @@ matched against are those given directly to Git commands. This means any URLs
visited as a result of a redirection do not participate in matching.
- Depending on the value of the environment variables `GIT_SSH` or
- `GIT_SSH_COMMAND`, or the config setting `core.sshCommand`, Git
- auto-detects whether to adjust its command-line parameters for use
- with ssh (OpenSSH), plink or tortoiseplink, as opposed to the default
- (simple).
-The config variable `ssh.variant` can be set to override this auto-detection;
-valid values are `ssh`, `simple`, `plink`, `putty` or `tortoiseplink`. Any
-other value will be treated as normal ssh. This setting can be overridden via
-the environment variable `GIT_SSH_VARIANT`.
+ By default, Git determines the command line arguments to use
+ based on the basename of the configured SSH command (configured
+ using the environment variable `GIT_SSH` or `GIT_SSH_COMMAND` or
+ the config setting `core.sshCommand`). If the basename is
+ unrecognized, Git will attempt to detect support of OpenSSH
+ options by first invoking the configured SSH command with the
+ `-G` (print configuration) option and will subsequently use
+ OpenSSH options (if that is successful) or no options besides
+ the host and remote command (if it fails).
+The config variable `ssh.variant` can be set to override this detection.
+Valid values are `ssh` (to use OpenSSH options), `plink`, `putty`,
+`tortoiseplink`, `simple` (no options except the host and remote command).
+The default auto-detection can be explicitly requested using the value
+`auto`. Any other value is treated as `ssh`. This setting can also be
+overridden via the environment variable `GIT_SSH_VARIANT`.
The current command-line parameters used for each variant are as