Comments
Patch
@@ -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, '')
@@ -243,7 +243,7 @@
s = repo.set('%n:%n', _bin(kwargs[r'node']), _bin(last))
else:
s = repo.set('%n', _bin(kwargs[r'node']))
- match = repo.narrowmatch()
+ match = repo._storenarrowmatch
for ctx in s:
# TODO: is there a way to just walk the files in the commit?
if any(ctx[f].islfs() for f in ctx.files()