Mercurial > hg
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: