diff -r 2e7804110b14 -r 2cfb0bbf83a1 mercurial/hook.py --- a/mercurial/hook.py Thu May 28 16:11:26 2015 -0400 +++ b/mercurial/hook.py Thu May 28 16:42:04 2015 -0400 @@ -35,32 +35,27 @@ if modpath and modfile: sys.path = sys.path[:] + [modpath] modname = modfile - demandimportenabled = demandimport.isenabled() - if demandimportenabled: - demandimport.disable() - try: - obj = __import__(modname) - except ImportError: - e1 = sys.exc_type, sys.exc_value, sys.exc_traceback + with demandimport.deactivated(): try: - # extensions are loaded with hgext_ prefix - obj = __import__("hgext_%s" % modname) + obj = __import__(modname) except ImportError: - e2 = sys.exc_type, sys.exc_value, sys.exc_traceback - if ui.tracebackflag: - ui.warn(_('exception from first failed import ' - 'attempt:\n')) - ui.traceback(e1) - if ui.tracebackflag: - ui.warn(_('exception from second failed import ' - 'attempt:\n')) - ui.traceback(e2) - raise util.Abort(_('%s hook is invalid ' - '(import of "%s" failed)') % - (hname, modname)) - finally: - if demandimportenabled: - demandimport.enable() + e1 = sys.exc_type, sys.exc_value, sys.exc_traceback + try: + # extensions are loaded with hgext_ prefix + obj = __import__("hgext_%s" % modname) + except ImportError: + e2 = sys.exc_type, sys.exc_value, sys.exc_traceback + if ui.tracebackflag: + ui.warn(_('exception from first failed import ' + 'attempt:\n')) + ui.traceback(e1) + if ui.tracebackflag: + ui.warn(_('exception from second failed import ' + 'attempt:\n')) + ui.traceback(e2) + raise util.Abort(_('%s hook is invalid ' + '(import of "%s" failed)') % + (hname, modname)) sys.path = oldpaths try: for p in funcname.split('.')[1:]: