Mercurial > public > mercurial-scm > hg-stable
diff mercurial/localrepo.py @ 19928:d1ac3790e10a
localrepo: invoke only feature setup functions for enabled extensions
Before this patch, each feature setup functions for localrepository
class should examine whether corresponding extension is enabled or not
by themselves.
This patch invokes only feature setup functions defined in module of
enabled extensions, and it makes implementation of feature setup
functions easier and simpler.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Thu, 17 Oct 2013 21:45:17 +0900 |
parents | fc3fbca35085 |
children | 4b06b2a445a1 |
line wrap: on
line diff
--- 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