narrow: move checking for narrow requirement into _narrowmatch()
authorMartin von Zweigbergk <martinvonz@google.com>
Wed, 28 Feb 2018 10:22:54 -0800
changeset 36466 a8b4d7673d8e
parent 36465 94709406f10d
child 36467 2d82a24d0c78
narrow: move checking for narrow requirement into _narrowmatch() We want to move narrowmatch() and others into core, so we need to get rid of the dependence on the "narrow_opts" from the closure in narrowrepo.wraprepo(). We can simply check if the narrow requirement is set. I think that seems like an improvement regardless of moving narrowmatch(). Differential Revision: https://phab.mercurial-scm.org/D2489
hgext/narrow/__init__.py
hgext/narrow/narrowcommands.py
hgext/narrow/narrowrepo.py
--- a/hgext/narrow/__init__.py	Wed Feb 28 10:55:21 2018 -0800
+++ b/hgext/narrow/__init__.py	Wed Feb 28 10:22:54 2018 -0800
@@ -73,7 +73,7 @@
         return
 
     if changegroup.NARROW_REQUIREMENT in repo.requirements:
-        narrowrepo.wraprepo(repo, True)
+        narrowrepo.wraprepo(repo)
         narrowcopies.setup(repo)
         narrowdirstate.setup(repo)
         narrowpatch.setup(repo)
--- a/hgext/narrow/narrowcommands.py	Wed Feb 28 10:55:21 2018 -0800
+++ b/hgext/narrow/narrowcommands.py	Wed Feb 28 10:22:54 2018 -0800
@@ -101,7 +101,7 @@
             '_pullbundle2extraprepare', pullbundle2extraprepare_widen)
 
     def pullnarrow(orig, repo, *args, **kwargs):
-        narrowrepo.wraprepo(repo.unfiltered(), opts_narrow)
+        narrowrepo.wraprepo(repo.unfiltered())
         if isinstance(repo, repoview.repoview):
             repo.__class__.__bases__ = (repo.__class__.__bases__[0],
                                         repo.unfiltered().__class__)
--- a/hgext/narrow/narrowrepo.py	Wed Feb 28 10:55:21 2018 -0800
+++ b/hgext/narrow/narrowrepo.py	Wed Feb 28 10:22:54 2018 -0800
@@ -38,7 +38,7 @@
             f.write(spec)
     return orig(ui, repo, repopath)
 
-def wraprepo(repo, opts_narrow):
+def wraprepo(repo):
     """Enables narrow clone functionality on a single local repository."""
 
     cacheprop = localrepo.storecache
@@ -77,9 +77,9 @@
 
         @localrepo.repofilecache(narrowspec.FILENAME)
         def _narrowmatch(self):
+            if changegroup.NARROW_REQUIREMENT not in self.requirements:
+                return matchmod.always(self.root, '')
             include, exclude = self.narrowpats
-            if not opts_narrow and not include and not exclude:
-                return matchmod.always(self.root, '')
             return narrowspec.match(self.root, include=include, exclude=exclude)
 
         # TODO(martinvonz): make this property-like instead?