dispatch: don't mangle ImportError abort messages
Previously, Mercurial assumed that the last word of the string
representation was the name of the moduled that was imported. This
assmption is incorrect, despite being true for the common case of an
exception raised by the Python VM.
For example, hgsubversion raises an ImportError with a helpful message
if the Subversion bindings were not found. The final word of this
message is not meaningful on its own, and is never the name of a
module.
This patch changes the output printed to be a simple stringification
of the exception instance. In most cases, this will be `abort: No
module named X!' rather than `abort: could not import module X!'.
No functionality change; all tests pass.
--- a/mercurial/dispatch.py Sat May 01 14:36:48 2010 +0200
+++ b/mercurial/dispatch.py Fri Apr 30 18:11:56 2010 +0200
@@ -105,8 +105,8 @@
except util.Abort, inst:
ui.warn(_("abort: %s\n") % inst)
except ImportError, inst:
+ ui.warn(_("abort: %s!\n") % inst)
m = str(inst).split()[-1]
- ui.warn(_("abort: could not import module %s!\n") % m)
if m in "mpatch bdiff".split():
ui.warn(_("(did you forget to compile extensions?)\n"))
elif m in "zlib".split():