Mercurial > public > mercurial-scm > hg-stable
diff mercurial/extensions.py @ 25364:de23a552fc23
extensions: show traceback on load failure if --traceback flag is set
Before this patch, there was no handy way to investigate the reason why
extension couldn't be loaded.
If ui.debug is set, tracebacks of both "hgext.foo" and "foo" are displayed
because the first ImportError could occur at very deep dependency module.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Mon, 30 Mar 2015 16:23:35 +0900 |
parents | e6e7d1cce04d |
children | 328739ea70c3 |
line wrap: on
line diff
--- a/mercurial/extensions.py Sun May 31 14:40:28 2015 +0900 +++ b/mercurial/extensions.py Mon Mar 30 16:23:35 2015 +0900 @@ -85,6 +85,8 @@ except ImportError, err: ui.debug('could not import hgext.%s (%s): trying %s\n' % (name, err, name)) + if ui.debugflag: + ui.traceback() mod = importh(name) _extensions[shortname] = mod _order.append(shortname) @@ -110,6 +112,7 @@ else: ui.warn(_("*** failed to import extension %s: %s\n") % (name, inst)) + ui.traceback() for name in _order[newindex:]: uisetup = getattr(_extensions[name], 'uisetup', None)