D5508: narrow: extract repo property for store narrowmatcher
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu Jan 10 16:51:16 EST 2019
martinvonz updated this revision to Diff 13148.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D5508?vs=13057&id=13148
REVISION DETAIL
https://phab.mercurial-scm.org/D5508
AFFECTED FILES
hgext/lfs/__init__.py
mercurial/localrepo.py
CHANGE DETAILS
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -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, '')
diff --git a/hgext/lfs/__init__.py b/hgext/lfs/__init__.py
--- a/hgext/lfs/__init__.py
+++ b/hgext/lfs/__init__.py
@@ -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()
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list