Mercurial > hg
changeset 36471:c28b6d609c47
narrow: move narrowmatch-related methods to localrepo
This patch makes it so localrepo.narrowmatch() and a few more are
always available, which will let us simplify the use sites a
bit. narrowmatch() will return an always-matcher in non-narrow repos
(just like it did when it lived in the narrow extension).
Differential Revision: https://phab.mercurial-scm.org/D2494
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 28 Feb 2018 12:56:01 -0800 |
parents | d851951b421c |
children | d0d5eef57fb0 |
files | hgext/narrow/narrowrepo.py mercurial/localrepo.py |
diffstat | 2 files changed, 32 insertions(+), 30 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/narrow/narrowrepo.py Tue Feb 27 23:05:39 2018 -0800 +++ b/hgext/narrow/narrowrepo.py Wed Feb 28 12:56:01 2018 -0800 @@ -12,7 +12,6 @@ changegroup, hg, localrepo, - match as matchmod, narrowspec, scmutil, ) @@ -67,35 +66,6 @@ narrowrevlog.makenarrowfilelog(fl, self.narrowmatch()) return fl - @localrepo.repofilecache(narrowspec.FILENAME) - def narrowpats(self): - """matcher patterns for this repository's narrowspec - - A tuple of (includes, excludes). - """ - source = self - if self.shared(): - source = hg.sharedreposource(self) - return narrowspec.load(source) - - @localrepo.repofilecache(narrowspec.FILENAME) - def _narrowmatch(self): - if changegroup.NARROW_REQUIREMENT not in self.requirements: - return matchmod.always(self.root, '') - include, exclude = self.narrowpats - return narrowspec.match(self.root, include=include, exclude=exclude) - - # TODO(martinvonz): make this property-like instead? - def narrowmatch(self): - return self._narrowmatch - - def setnarrowpats(self, newincludes, newexcludes): - target = self - if self.shared(): - target = hg.sharedreposource(self) - narrowspec.save(target, newincludes, newexcludes) - self.invalidate(clearfilecache=True) - # I'm not sure this is the right place to do this filter. # context._manifestmatches() would probably be better, or perhaps # move it to a later place, in case some of the callers do want to know
--- a/mercurial/localrepo.py Tue Feb 27 23:05:39 2018 -0800 +++ b/mercurial/localrepo.py Wed Feb 28 12:56:01 2018 -0800 @@ -43,6 +43,7 @@ merge as mergemod, mergeutil, namespaces, + narrowspec, obsolete, pathutil, peer, @@ -736,6 +737,37 @@ " working parent %s!\n") % short(node)) return nullid + @repofilecache(narrowspec.FILENAME) + def narrowpats(self): + """matcher patterns for this repository's narrowspec + + A tuple of (includes, excludes). + """ + source = self + if self.shared(): + from . import hg + source = hg.sharedreposource(self) + return narrowspec.load(source) + + @repofilecache(narrowspec.FILENAME) + def _narrowmatch(self): + if changegroup.NARROW_REQUIREMENT not in self.requirements: + return matchmod.always(self.root, '') + include, exclude = self.narrowpats + return narrowspec.match(self.root, include=include, exclude=exclude) + + # TODO(martinvonz): make this property-like instead? + def narrowmatch(self): + return self._narrowmatch + + def setnarrowpats(self, newincludes, newexcludes): + target = self + if self.shared(): + from . import hg + target = hg.sharedreposource(self) + narrowspec.save(target, newincludes, newexcludes) + self.invalidate(clearfilecache=True) + def __getitem__(self, changeid): if changeid is None: return context.workingctx(self)