Fix / work around the bug where 'ssh -o ControlMaster=auto' interacts badly with the svn+ssh tunnel scheme. As I note in the bug log for #413102, I don't really think the problem is either svn's or openssh's fault, but the obvious way to avoid it is to avoid accidentally becoming a ControlMaster. In this mode we will still use ssh connection sharing, but only if a ControlMaster is already present. diff --git a/subversion/subversion/libsvn_ra_svn/client.c b/subversion/subversion/libsvn_ra_svn/client.c index dd60dbef9..afdd12a14 100644 --- a/subversion/subversion/libsvn_ra_svn/client.c +++ b/subversion/subversion/libsvn_ra_svn/client.c @@ -399,7 +399,7 @@ static svn_error_t *find_tunnel_agent(const char *tunnel, * versions have it too. If the user is using some other ssh * implementation that doesn't accept it, they can override it * in the [tunnels] section of the config. */ - val = "$SVN_SSH ssh -q --"; + val = "$SVN_SSH ssh -q -o ControlMaster=no --"; } if (!val || !*val) diff --git a/subversion/subversion/libsvn_subr/config_file.c b/subversion/subversion/libsvn_subr/config_file.c index 9c0a83a17..ffb9524dc 100644 --- a/subversion/subversion/libsvn_subr/config_file.c +++ b/subversion/subversion/libsvn_subr/config_file.c @@ -1447,7 +1447,7 @@ svn_config_ensure(const char *config_dir, apr_pool_t *pool) "### passed to the tunnel agent as @.) If the" NL "### built-in ssh scheme were not predefined, it could be defined" NL "### as:" NL - "# ssh = $SVN_SSH ssh -q --" NL + "# ssh = $SVN_SSH ssh -q -o ControlMaster=no --" NL "### If you wanted to define a new 'rsh' scheme, to be used with" NL "### 'svn+rsh:' URLs, you could do so as follows:" NL "# rsh = rsh --" NL