Mercurial > hg-stable
diff mercurial/dispatch.py @ 20826:dd2e25e49862 stable
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.
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Fri, 07 Mar 2014 14:06:52 -0500 |
parents | 69a0d22b9677 |
children | 9a09a625bc93 |
line wrap: on
line diff
--- a/mercurial/dispatch.py Tue Mar 25 19:34:17 2014 +0900 +++ b/mercurial/dispatch.py Fri Mar 07 14:06:52 2014 -0500 @@ -108,13 +108,17 @@ # 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