--- a/mercurial/localrepo.py Sat Dec 29 23:01:12 2018 -0800
+++ b/mercurial/localrepo.py Sat Dec 29 23:35:05 2018 -0800
@@ -815,7 +815,7 @@
if path[0] == b'/':
path = path[1:]
- return filelog.narrowfilelog(self.svfs, path, self.narrowmatch())
+ return filelog.narrowfilelog(self.svfs, path, self._storenarrowmatch)
def makefilestorage(requirements, features, **kwargs):
"""Produce a type conforming to ``ilocalrepositoryfilestorage``."""
@@ -1191,7 +1191,7 @@
def manifestlog(self):
rootstore = manifest.manifestrevlog(self.svfs)
return manifest.manifestlog(self.svfs, self, rootstore,
- self.narrowmatch())
+ self._storenarrowmatch)
@repofilecache('dirstate')
def dirstate(self):
@@ -1224,6 +1224,13 @@
return narrowspec.load(self)
@storecache(narrowspec.FILENAME)
+ def _storenarrowmatch(self):
+ if repository.NARROW_REQUIREMENT not in self.requirements:
+ return matchmod.always(self.root, '')
+ include, exclude = self.narrowpats
+ return narrowspec.match(self.root, include=include, exclude=exclude)
+
+ @storecache(narrowspec.FILENAME)
def _narrowmatch(self):
if repository.NARROW_REQUIREMENT not in self.requirements:
return matchmod.always(self.root, '')