narrow: always wrap repo
authorMartin von Zweigbergk <martinvonz@google.com>
Wed, 28 Feb 2018 12:55:05 -0800
changeset 36468 6aae86976324
parent 36467 2d82a24d0c78
child 36469 28c7f580360b
narrow: always wrap repo It's simpler to always wrap the repo. This prepares for moving narrowrepo.narrowmatch() onto localrepo by showing that it's now safe to always wrap the repo (and thus always define narrowmatch() etc.). Note that since narrowmatch() returns an always-matcher (rather than None) in non-narrow repos, this may mean a performance hit when the narrow extension is enabled because it adds a no-op filtering step in various places against the always-matcher. I'll restore some of that soon. Differential Revision: https://phab.mercurial-scm.org/D2491
hgext/narrow/__init__.py
hgext/narrow/narrowcommands.py
--- a/hgext/narrow/__init__.py	Wed Feb 28 10:29:04 2018 -0800
+++ b/hgext/narrow/__init__.py	Wed Feb 28 12:55:05 2018 -0800
@@ -72,8 +72,8 @@
     if not isinstance(repo, localrepo.localrepository):
         return
 
+    narrowrepo.wraprepo(repo)
     if changegroup.NARROW_REQUIREMENT in repo.requirements:
-        narrowrepo.wraprepo(repo)
         narrowcopies.setup(repo)
         narrowdirstate.setup(repo)
         narrowpatch.setup(repo)
--- a/hgext/narrow/narrowcommands.py	Wed Feb 28 10:29:04 2018 -0800
+++ b/hgext/narrow/narrowcommands.py	Wed Feb 28 12:55:05 2018 -0800
@@ -30,7 +30,6 @@
 
 from . import (
     narrowbundle2,
-    narrowrepo,
 )
 
 table = {}
@@ -101,10 +100,6 @@
             '_pullbundle2extraprepare', pullbundle2extraprepare_widen)
 
     def pullnarrow(orig, repo, *args, **kwargs):
-        narrowrepo.wraprepo(repo.unfiltered())
-        if isinstance(repo, repoview.repoview):
-            repo.__class__.__bases__ = (repo.__class__.__bases__[0],
-                                        repo.unfiltered().__class__)
         if opts_narrow:
             repo.requirements.add(changegroup.NARROW_REQUIREMENT)
             repo._writerequirements()