dispatch: don't mangle ImportError abort messages stable
authorDan Villiom Podlaski Christiansen <danchr@gmail.com>
Fri, 30 Apr 2010 18:11:56 +0200
branchstable
changeset 11053 59d0d715fbfa
parent 11052 d6094402de14
child 11054 355a7535bcac
child 11066 26abd91d9e84
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.
mercurial/dispatch.py
--- 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():