[PATCH stable] hook: disable demandimport before importing hooks

Dirkjan Ochtman dirkjan at ochtman.nl
Mon Dec 17 05:45:07 CST 2012


# HG changeset patch
# User Dirkjan Ochtman <dirkjan at ochtman.nl>
# Date 1355744565 -3600
# Node ID 50352cc4c0560f1e3e49c78c8070a5dadac950c8
# Parent  e853d27956fb0a25dcaac29b18bb0d5719297830
hook: disable demandimport before importing hooks

diff --git a/mercurial/hook.py b/mercurial/hook.py
--- a/mercurial/hook.py
+++ b/mercurial/hook.py
@@ -7,7 +7,7 @@
 
 from i18n import _
 import os, sys
-import extensions, util
+import extensions, util, demandimport
 
 def _pythonhook(ui, repo, name, hname, funcname, args, throw):
     '''call python hook. hook is callable object, looked up as
@@ -35,13 +35,17 @@
                 sys.path = sys.path[:] + [modpath]
                 modname = modfile
         try:
+            demandimport.disable()
             obj = __import__(modname)
+            demandimport.enable()
         except ImportError:
             e1 = sys.exc_type, sys.exc_value, sys.exc_traceback
             try:
                 # extensions are loaded with hgext_ prefix
                 obj = __import__("hgext_%s" % modname)
+                demandimport.enable()
             except ImportError:
+                demandimport.enable()
                 e2 = sys.exc_type, sys.exc_value, sys.exc_traceback
                 if ui.tracebackflag:
                     ui.warn(_('exception from first failed import attempt:\n'))


More information about the Mercurial-devel mailing list