diff --git a/mercurial/extensions.py b/mercurial/extensions.py index 3ff4b07412ad709d57e304c139d05469fede8fce_bWVyY3VyaWFsL2V4dGVuc2lvbnMucHk=..de23a552fc23e241b4c510200bc913012c123708_bWVyY3VyaWFsL2V4dGVuc2lvbnMucHk= 100644 --- a/mercurial/extensions.py +++ b/mercurial/extensions.py @@ -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) diff --git a/tests/test-bad-extension.t b/tests/test-bad-extension.t index 3ff4b07412ad709d57e304c139d05469fede8fce_dGVzdHMvdGVzdC1iYWQtZXh0ZW5zaW9uLnQ=..de23a552fc23e241b4c510200bc913012c123708_dGVzdHMvdGVzdC1iYWQtZXh0ZW5zaW9uLnQ= 100644 --- a/tests/test-bad-extension.t +++ b/tests/test-bad-extension.t @@ -15,3 +15,32 @@ hg help [-ec] [TOPIC] show help for a given topic or a help overview + +show traceback + + $ hg -q help help --traceback 2>&1 | grep -v '^ ' + *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow + Traceback (most recent call last): + Exception: bit bucket overflow + *** failed to import extension badext2: No module named badext2 + Traceback (most recent call last): + ImportError: No module named badext2 + hg help [-ec] [TOPIC] + + show help for a given topic or a help overview + +show traceback for ImportError of hgext.name if debug is set +(note that --debug option isn't applied yet when loading extensions) + + $ hg help help --traceback --config ui.debug=True 2>&1 \ + > | grep -v '^ ' | head -n10 + *** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow + Traceback (most recent call last): + Exception: bit bucket overflow + could not import hgext.badext2 (No module named badext2): trying badext2 + Traceback (most recent call last): + ImportError: No module named badext2 + *** failed to import extension badext2: No module named badext2 + Traceback (most recent call last): + ImportError: No module named badext2 + hg help [-ec] [TOPIC]