Mercurial > hg-stable
changeset 35131:8b1c887d52e7
sshpeer: add a configurable hint for the ssh error message
Adding a possibility to configure error hint to be shown in the case of problems with SSH. Example of such hint can be "Please see http://company/internalwiki/ssh.html".
Test Plan:
- Ran hg pull with broken link and verified the output has no hint by default:
```
pulling from ssh://brokenrepository.com//repo
remote: ssh: Could not resolve hostname brokenrepository.com: Name or service not known
abort: no suitable response from remote hg!
```
- Run hg pull --config ui.ssherrorhint="Please see http://company/internalwiki/ssh.html":
```
pulling from ssh://brokenrepository.com//repo
remote: ssh: Could not resolve hostname brokenrepository.com: Name or service not known
abort: no suitable response from remote hg!
(Please see http://company/internalwiki/ssh.html)
```
Differential Revision: https://phab.mercurial-scm.org/D1431
author | Zuzanna Mroczek <zuza@fb.com> |
---|---|
date | Mon, 20 Nov 2017 01:40:26 -0800 |
parents | b22a0d9e0a83 |
children | e96613048bdd |
files | mercurial/configitems.py mercurial/help/config.txt mercurial/sshpeer.py tests/test-ssh.t |
diffstat | 4 files changed, 27 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/configitems.py Thu Nov 16 15:01:21 2017 -0800 +++ b/mercurial/configitems.py Mon Nov 20 01:40:26 2017 -0800 @@ -964,6 +964,9 @@ coreconfigitem('ui', 'ssh', default='ssh', ) +coreconfigitem('ui', 'ssherrorhint', + default=None, +) coreconfigitem('ui', 'statuscopies', default=False, )
--- a/mercurial/help/config.txt Thu Nov 16 15:01:21 2017 -0800 +++ b/mercurial/help/config.txt Mon Nov 20 01:40:26 2017 -0800 @@ -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)
--- a/mercurial/sshpeer.py Thu Nov 16 15:01:21 2017 -0800 +++ b/mercurial/sshpeer.py Mon Nov 20 01:40:26 2017 -0800 @@ -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
--- a/tests/test-ssh.t Thu Nov 16 15:01:21 2017 -0800 +++ b/tests/test-ssh.t Mon Nov 20 01:40:26 2017 -0800 @@ -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]