dispatch: only do __import__(debugger) when a debugger is requested

When having ui.debugger=somedebugger in one's ~/.hgrc, this then
somedebugger would be imported for every hg command. With this patch,
this import only happens if the --debugger parameter is passed.
This commit is contained in:
Jordi Gutiérrez Hermoso 2014-03-07 14:06:52 -05:00
parent c52b73121a
commit 4d640be53b

View File

@ -108,13 +108,17 @@ def _runcatch(req):
# if we are in HGPLAIN mode, then disable custom debugging
debugger = ui.config("ui", "debugger")
debugmod = pdb
if not debugger or ui.plain():
debugger = 'pdb'
try:
debugmod = __import__(debugger)
except ImportError:
debugmod = pdb
elif '--debugger' in req.args:
# This import can be slow for fancy debuggers, so only
# do it when absolutely necessary, i.e. when actual
# debugging has been requested
try:
debugmod = __import__(debugger)
except ImportError:
pass # Leave debugmod = pdb
debugtrace[debugger] = debugmod.set_trace
debugmortem[debugger] = debugmod.post_mortem