Mercurial > hg
changeset 395:fbe8834923c5
commands: report http exceptions nicely
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
commands: report http exceptions nicely
manifest hash: 37760b304eedffcea9c1c01d03334cf4f6048fd3
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCsx6QywK+sNU5EO8RAnyEAKC3RBzwlVAyI+SSYHj1Z+Psn1Aq3gCcDQJf
pqPitXBuvdZbLdK0ti2kFOk=
=ZjC9
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Fri, 17 Jun 2005 11:03:44 -0800 |
parents | e6db25785b00 |
children | 8f8bb77d560e |
files | mercurial/commands.py tests/test-bad-pull tests/test-bad-pull.out |
diffstat | 3 files changed, 61 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Fri Jun 17 09:32:13 2005 -0800 +++ b/mercurial/commands.py Fri Jun 17 11:03:44 2005 -0800 @@ -752,7 +752,11 @@ except KeyboardInterrupt: u.warn("interrupted!\n") except IOError, inst: - if inst.errno == errno.EPIPE: + if hasattr(inst, "code"): + u.warn("abort: %s\n" % inst) + elif hasattr(inst, "reason"): + u.warn("abort: error %d: %s\n" % (inst.reason[0], inst.reason[1])) + elif hasattr(inst, "args") and inst[0] == errno.EPIPE: u.warn("broken pipe\n") else: raise
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-bad-pull Fri Jun 17 11:03:44 2005 -0800 @@ -0,0 +1,34 @@ +#!/bin/bash + +mkdir copy +cd copy +hg init http://localhost:20059/ +hg verify +hg co +cat foo +hg manifest + +cat > dumb.py <<EOF +import BaseHTTPServer, SimpleHTTPServer, signal + +def run(server_class=BaseHTTPServer.HTTPServer, + handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler): + server_address = ('localhost', 20059) + httpd = server_class(server_address, handler_class) + httpd.serve_forever() + +signal.signal(signal.SIGTERM, lambda x: sys.exit(0)) +run() +EOF + +python dumb.py 2>/dev/null & + +mkdir copy2 +cd copy2 +hg init http://localhost:20059/foo +hg verify +hg co +cat foo +hg manifest + +kill %1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-bad-pull.out Fri Jun 17 11:03:44 2005 -0800 @@ -0,0 +1,22 @@ +requesting all changes +adding changesets +abort: error 111: Connection refused +transaction abort! +rollback completed +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +0 files, 0 changesets, 0 total revisions +cat: foo: No such file or directory +requesting all changes +adding changesets +abort: HTTP Error 404: File not found +transaction abort! +rollback completed +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +0 files, 0 changesets, 0 total revisions +cat: foo: No such file or directory