Patchwork D2494: narrow: move narrowmatch-related methods to localrepo

login
register
mail settings
Submitter phabricator
Date March 1, 2018, 2:18 a.m.
Message ID <b2c5927cb605343de0163c8cd3052224@localhost.localdomain>
Download mbox | patch
Permalink /patch/28527/
State Not Applicable
Headers show

Comments

phabricator - March 1, 2018, 2:18 a.m.
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG759a79ce785e: narrow: move narrowmatch-related methods to localrepo (authored by martinvonz, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2494?vs=6194&id=6228

REVISION DETAIL
  https://phab.mercurial-scm.org/D2494

AFFECTED FILES
  hgext/narrow/narrowrepo.py
  mercurial/localrepo.py

CHANGE DETAILS




To: martinvonz, durin42, #hg-reviewers, indygreg
Cc: indygreg, mercurial-devel

Patch

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -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)
diff --git a/hgext/narrow/narrowrepo.py b/hgext/narrow/narrowrepo.py
--- a/hgext/narrow/narrowrepo.py
+++ b/hgext/narrow/narrowrepo.py
@@ -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