D1431: sshpeer: add a configurable hint for the ssh error message

zuza (Zuzanna Mroczek) phabricator at mercurial-scm.org
Thu Nov 16 13:58:10 EST 2017


zuza updated this revision to Diff 3572.
zuza edited the summary of this revision.
zuza edited the test plan for this revision.
zuza retitled this revision from "sshpeer: making the ssh error message configurable" to "sshpeer: add a configurable hint for the ssh error message".

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D1431?vs=3548&id=3572

REVISION DETAIL
  https://phab.mercurial-scm.org/D1431

AFFECTED FILES
  mercurial/configitems.py
  mercurial/sshpeer.py
  tests/test-ssh.t

CHANGE DETAILS

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]
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/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,
 )



To: zuza, #hg-reviewers, durham, mitrandir
Cc: yuja, mercurial-devel


More information about the Mercurial-devel mailing list