Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/localrepo.py @ 36501: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 | 04c319a07c7b |
children | 06f59bdde626 |
comparison
equal
deleted
inserted
replaced
36500:d851951b421c | 36501:c28b6d609c47 |
---|---|
41 manifest, | 41 manifest, |
42 match as matchmod, | 42 match as matchmod, |
43 merge as mergemod, | 43 merge as mergemod, |
44 mergeutil, | 44 mergeutil, |
45 namespaces, | 45 namespaces, |
46 narrowspec, | |
46 obsolete, | 47 obsolete, |
47 pathutil, | 48 pathutil, |
48 peer, | 49 peer, |
49 phases, | 50 phases, |
50 pushkey, | 51 pushkey, |
733 if not self._dirstatevalidatewarned: | 734 if not self._dirstatevalidatewarned: |
734 self._dirstatevalidatewarned = True | 735 self._dirstatevalidatewarned = True |
735 self.ui.warn(_("warning: ignoring unknown" | 736 self.ui.warn(_("warning: ignoring unknown" |
736 " working parent %s!\n") % short(node)) | 737 " working parent %s!\n") % short(node)) |
737 return nullid | 738 return nullid |
739 | |
740 @repofilecache(narrowspec.FILENAME) | |
741 def narrowpats(self): | |
742 """matcher patterns for this repository's narrowspec | |
743 | |
744 A tuple of (includes, excludes). | |
745 """ | |
746 source = self | |
747 if self.shared(): | |
748 from . import hg | |
749 source = hg.sharedreposource(self) | |
750 return narrowspec.load(source) | |
751 | |
752 @repofilecache(narrowspec.FILENAME) | |
753 def _narrowmatch(self): | |
754 if changegroup.NARROW_REQUIREMENT not in self.requirements: | |
755 return matchmod.always(self.root, '') | |
756 include, exclude = self.narrowpats | |
757 return narrowspec.match(self.root, include=include, exclude=exclude) | |
758 | |
759 # TODO(martinvonz): make this property-like instead? | |
760 def narrowmatch(self): | |
761 return self._narrowmatch | |
762 | |
763 def setnarrowpats(self, newincludes, newexcludes): | |
764 target = self | |
765 if self.shared(): | |
766 from . import hg | |
767 target = hg.sharedreposource(self) | |
768 narrowspec.save(target, newincludes, newexcludes) | |
769 self.invalidate(clearfilecache=True) | |
738 | 770 |
739 def __getitem__(self, changeid): | 771 def __getitem__(self, changeid): |
740 if changeid is None: | 772 if changeid is None: |
741 return context.workingctx(self) | 773 return context.workingctx(self) |
742 if isinstance(changeid, slice): | 774 if isinstance(changeid, slice): |