changeset 2040:cd7711268774

Don't enter an endless loop if remote hg doesn't answer, show remote noise. The endless loop is not only triggered if the remote shell is too noisy, but even if the local ssh command dies due to an error.
author Thomas Arendsen Hein <thomas@intevation.de>
date Sun, 02 Apr 2006 22:12:56 +0200
parents 0c438fd25e6e
children 077a2da7f1de
files mercurial/sshrepo.py
diffstat 1 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/sshrepo.py	Sun Apr 02 18:20:52 2006 +0200
+++ b/mercurial/sshrepo.py	Sun Apr 02 22:12:56 2006 +0200
@@ -39,12 +39,21 @@
         # skip any noise generated by remote shell
         r = self.do_cmd("between", pairs=("%s-%s" % ("0"*40, "0"*40)))
         l1 = ""
-        while 1:
+        l2 = "dummy"
+        max_noise = 100
+        while l2 and max_noise:
             l2 = r.readline()
             self.readerr()
             if l1 == "1\n" and l2 == "\n":
                 break
+            if l1:
+                ui.status(_("remote: %s") % l1)
             l1 = l2
+            max_noise -= 1
+        else:
+            if l1:
+                ui.status(_("remote: %s") % l1)
+            raise hg.RepoError(_("no response from remote hg"))
 
     def readerr(self):
         while 1: