# HG changeset patch # User mpm@selenic.com # Date 1119035024 28800 # Node ID fbe8834923c57e2222b621c3cc1a78f326ed59d6 # Parent e6db25785b00017c2ac405286d3665112c29106f 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----- diff -r e6db25785b00 -r fbe8834923c5 mercurial/commands.py --- 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 diff -r e6db25785b00 -r fbe8834923c5 tests/test-bad-pull --- /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 </dev/null & + +mkdir copy2 +cd copy2 +hg init http://localhost:20059/foo +hg verify +hg co +cat foo +hg manifest + +kill %1 diff -r e6db25785b00 -r fbe8834923c5 tests/test-bad-pull.out --- /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