diff mercurial/sshrepo.py @ 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 1f1fc418a96c
children d14497cbd668
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: