# HG changeset patch # User Thomas Arendsen Hein # Date 1165095665 -3600 # Node ID 6ae3685be45d0a629d41758c958094b4467c904a # Parent 1861fa38a6a771dbf5787d8c733e63d2fc8f06b4# Parent 955475d237fc975f7374e21da779056ba514634e merge with crew diff -r 955475d237fc -r 6ae3685be45d mercurial/commands.py --- a/mercurial/commands.py Sat Dec 02 18:41:07 2006 -0200 +++ b/mercurial/commands.py Sat Dec 02 22:41:05 2006 +0100 @@ -3031,8 +3031,7 @@ elif not inst[1]: u.warn(_(" empty string\n")) else: - u.warn("\n%r%s\n" % - (inst[1][:400], len(inst[1]) > 400 and '...' or '')) + u.warn("\n%r\n" % util.ellipsis(inst[1])) except util.Abort, inst: u.warn(_("abort: %s\n") % inst) except TypeError, inst: diff -r 955475d237fc -r 6ae3685be45d mercurial/sshrepo.py --- a/mercurial/sshrepo.py Sat Dec 02 18:41:07 2006 -0200 +++ b/mercurial/sshrepo.py Sat Dec 02 22:41:05 2006 +0100 @@ -18,7 +18,7 @@ m = re.match(r'^ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))?$', path) if not m: - self.repoerror(_("couldn't parse location %s") % path) + self.raise_(hg.RepoError(_("couldn't parse location %s") % path)) self.user = m.group(2) self.host = m.group(3) @@ -38,7 +38,7 @@ ui.note('running %s\n' % cmd) res = os.system(cmd) if res != 0: - self.repoerror(_("could not create remote repo")) + self.raise_(hg.RepoError(_("could not create remote repo"))) self.validate_repo(ui, sshcmd, args, remotecmd) @@ -70,7 +70,7 @@ lines.append(l) max_noise -= 1 else: - self.repoerror(_("no suitable response from remote hg")) + self.raise_(hg.RepoError(_("no suitable response from remote hg"))) self.capabilities = () lines.reverse() @@ -87,9 +87,9 @@ if not l: break self.ui.status(_("remote: "), l) - def repoerror(self, msg): + def raise_(self, exception): self.cleanup() - raise hg.RepoError(msg) + raise exception def cleanup(self): try: @@ -121,7 +121,7 @@ try: l = int(l) except: - self.repoerror(_("unexpected response '%s'") % l) + self.raise_(util.UnexpectedOutput(_("unexpected response:"), l)) return r.read(l) def lock(self): @@ -134,21 +134,17 @@ def lookup(self, key): d = self.call("lookup", key=key) success, data = d[:-1].split(" ", 1) - try: - if int(success): - return bin(data) - else: - raise data - except: - raise - raise hg.RepoError("unexpected response '%s'" % (d[:400] + "...")) + if int(success): + return bin(data) + else: + self.raise_(hg.RepoError(data)) def heads(self): d = self.call("heads") try: return map(bin, d[:-1].split(" ")) except: - self.repoerror(_("unexpected response '%s'") % (d[:400] + "...")) + self.raise_(util.UnexpectedOutput(_("unexpected response:"), d)) def branches(self, nodes): n = " ".join(map(hex, nodes)) @@ -157,7 +153,7 @@ br = [ tuple(map(bin, b.split(" "))) for b in d.splitlines() ] return br except: - self.repoerror(_("unexpected response '%s'") % (d[:400] + "...")) + self.raise_(util.UnexpectedOutput(_("unexpected response:"), d)) def between(self, pairs): n = "\n".join(["-".join(map(hex, p)) for p in pairs]) @@ -166,7 +162,7 @@ p = [ l and map(bin, l.split(" ")) or [] for l in d.splitlines() ] return p except: - self.repoerror(_("unexpected response '%s'") % (d[:400] + "...")) + self.raise_(util.UnexpectedOutput(_("unexpected response:"), d)) def changegroup(self, nodes, kind): n = " ".join(map(hex, nodes)) @@ -180,7 +176,7 @@ def unbundle(self, cg, heads, source): d = self.call("unbundle", heads=' '.join(map(hex, heads))) if d: - self.repoerror(_("push refused: %s") % d) + self.raise_(hg.RepoError(_("push refused: %s") % d)) while 1: d = cg.read(4096) @@ -206,7 +202,7 @@ def addchangegroup(self, cg, source, url): d = self.call("addchangegroup") if d: - self.repoerror(_("push refused: %s") % d) + self.raise_(hg.RepoError(_("push refused: %s") % d)) while 1: d = cg.read(4096) if not d: break diff -r 955475d237fc -r 6ae3685be45d mercurial/util.py --- a/mercurial/util.py Sat Dec 02 18:41:07 2006 -0200 +++ b/mercurial/util.py Sat Dec 02 22:41:05 2006 +0100 @@ -1032,6 +1032,13 @@ user = user[:f] return user +def ellipsis(text, maxlength=400): + """Trim string to at most maxlength (default: 400) characters.""" + if len(text) <= maxlength: + return text + else: + return "%s..." % (text[:maxlength-3]) + def walkrepos(path): '''yield every hg repository under path, recursively.''' def errhandler(err):