diff --git a/mercurial/configitems.py b/mercurial/configitems.py --- a/mercurial/configitems.py +++ b/mercurial/configitems.py @@ -964,6 +964,9 @@ coreconfigitem('ui', 'ssh', default='ssh', ) +coreconfigitem('ui', 'ssherrorhint', + default=None, +) coreconfigitem('ui', 'statuscopies', default=False, ) diff --git a/mercurial/help/config.txt b/mercurial/help/config.txt --- a/mercurial/help/config.txt +++ b/mercurial/help/config.txt @@ -2188,6 +2188,10 @@ ``ssh`` Command to use for SSH connections. (default: ``ssh``) +``ssherrorhint`` + A hint shown to the user in the case of SSH error (e.g. + ``Please see http://company/internalwiki/ssh.html``) + ``strict`` Require exact command names, instead of allowing unambiguous abbreviations. (default: False) diff --git a/mercurial/sshpeer.py b/mercurial/sshpeer.py --- a/mercurial/sshpeer.py +++ b/mercurial/sshpeer.py @@ -204,8 +204,9 @@ self._pipeo = doublepipe(self.ui, self._pipeo, self._pipee) def badresponse(): - self._abort(error.RepoError(_('no suitable response from ' - 'remote hg'))) + msg = _("no suitable response from remote hg") + hint = self.ui.config("ui", "ssherrorhint") + self._abort(error.RepoError(msg, hint=hint)) try: # skip any noise generated by remote shell diff --git a/tests/test-ssh.t b/tests/test-ssh.t --- a/tests/test-ssh.t +++ b/tests/test-ssh.t @@ -578,3 +578,20 @@ remote: abort: this is an exercise abort: pull failed on remote [255] + +abort with no error hint when there is a ssh problem when pulling + + $ hg pull ssh://brokenrepository + pulling from ssh://brokenrepository/ + remote: ssh: Could not resolve hostname brokenrepository: Name or service not known + abort: no suitable response from remote hg! + [255] + +abort with configured error hint when there is a ssh problem when pulling + + $ hg pull ssh://brokenrepository --config ui.ssherrorhint="Please see http://company/internalwiki/ssh.html" + pulling from ssh://brokenrepository/ + remote: ssh: Could not resolve hostname brokenrepository: Name or service not known + abort: no suitable response from remote hg! + (Please see http://company/internalwiki/ssh.html) + [255]