mercurial/localrepo.py
changeset 19928 d1ac3790e10a
parent 19884 fc3fbca35085
child 20027 4b06b2a445a1
--- a/mercurial/localrepo.py	Wed Oct 02 21:16:40 2013 +0900
+++ b/mercurial/localrepo.py	Thu Oct 17 21:45:17 2013 +0900
@@ -153,6 +153,8 @@
     requirements = ['revlogv1']
     filtername = None
 
+    # a list of (ui, featureset) functions.
+    # only functions defined in module of enabled extensions are invoked
     featuresetupfuncs = set()
 
     def _baserequirements(self, create):
@@ -181,8 +183,11 @@
 
         if self.featuresetupfuncs:
             self.supported = set(self._basesupported) # use private copy
+            extmods = set(m.__name__ for n, m
+                          in extensions.extensions(self.ui))
             for setupfunc in self.featuresetupfuncs:
-                setupfunc(self.ui, self.supported)
+                if setupfunc.__module__ in extmods:
+                    setupfunc(self.ui, self.supported)
         else:
             self.supported = self._basesupported