diff -r 76c83107a724 -r d1ac3790e10a mercurial/localrepo.py --- 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