D1164: extensions: always include traceback when extension setup fails
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Wed Oct 18 08:47:13 EDT 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG78d9a7b7cdb6: extensions: always include traceback when extension setup fails (authored by martinvonz, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D1164?vs=2939&id=2974
REVISION DETAIL
https://phab.mercurial-scm.org/D1164
AFFECTED FILES
mercurial/extensions.py
tests/test-extension.t
tests/test-flagprocessor.t
CHANGE DETAILS
diff --git a/tests/test-flagprocessor.t b/tests/test-flagprocessor.t
--- a/tests/test-flagprocessor.t
+++ b/tests/test-flagprocessor.t
@@ -162,8 +162,18 @@
> duplicate=$TESTDIR/flagprocessorext.py
> EOF
$ hg debugrebuilddirstate
+ Traceback (most recent call last):
+ File "*/mercurial/extensions.py", line *, in _runextsetup (glob)
+ extsetup(ui)
+ File "*/tests/flagprocessorext.py", line *, in extsetup (glob)
+ validatehash,
+ File "*/mercurial/revlog.py", line *, in addflagprocessor (glob)
+ raise error.Abort(msg)
+ Abort: cannot register multiple processors on flag '0x8'.
*** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'.
$ hg st 2>&1 | egrep 'cannot register multiple processors|flagprocessorext'
+ File "*/tests/flagprocessorext.py", line *, in extsetup (glob)
+ Abort: cannot register multiple processors on flag '0x8'.
*** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'.
File "*/tests/flagprocessorext.py", line *, in b64decode (glob)
diff --git a/tests/test-extension.t b/tests/test-extension.t
--- a/tests/test-extension.t
+++ b/tests/test-extension.t
@@ -524,15 +524,6 @@
Even though the extension fails during uisetup, hg is still basically usable:
$ hg --config extensions.baduisetup=$TESTTMP/baduisetup.py version
- *** failed to set up extension baduisetup: integer division or modulo by zero
- Mercurial Distributed SCM (version *) (glob)
- (see https://mercurial-scm.org for more information)
-
- Copyright (C) 2005-2017 Matt Mackall and others
- This is free software; see the source for copying conditions. There is NO
- warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- $ hg --config extensions.baduisetup=$TESTTMP/baduisetup.py version --traceback
Traceback (most recent call last):
File "*/mercurial/extensions.py", line *, in _runuisetup (glob)
uisetup(ui)
diff --git a/mercurial/extensions.py b/mercurial/extensions.py
--- a/mercurial/extensions.py
+++ b/mercurial/extensions.py
@@ -182,7 +182,7 @@
try:
uisetup(ui)
except Exception as inst:
- ui.traceback()
+ ui.traceback(force=True)
msg = util.forcebytestr(inst)
ui.warn(_("*** failed to set up extension %s: %s\n") % (name, msg))
return False
@@ -203,7 +203,7 @@
raise
extsetup() # old extsetup with no ui argument
except Exception as inst:
- ui.traceback()
+ ui.traceback(force=True)
msg = util.forcebytestr(inst)
ui.warn(_("*** failed to set up extension %s: %s\n") % (name, msg))
return False
To: martinvonz, #hg-reviewers, quark
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list