narrow: remove dependency from narrowspec module to hg module
authorMartin von Zweigbergk <martinvonz@google.com>
Tue, 27 Feb 2018 23:05:39 -0800
changeset 36470 d851951b421c
parent 36469 28c7f580360b
child 36471 c28b6d609c47
narrow: remove dependency from narrowspec module to hg module Differential Revision: https://phab.mercurial-scm.org/D2493
hgext/narrow/narrowrepo.py
mercurial/narrowspec.py
--- a/hgext/narrow/narrowrepo.py	Wed Feb 28 10:32:00 2018 -0800
+++ b/hgext/narrow/narrowrepo.py	Tue Feb 27 23:05:39 2018 -0800
@@ -73,7 +73,10 @@
 
             A tuple of (includes, excludes).
             """
-            return narrowspec.load(self)
+            source = self
+            if self.shared():
+                source = hg.sharedreposource(self)
+            return narrowspec.load(source)
 
         @localrepo.repofilecache(narrowspec.FILENAME)
         def _narrowmatch(self):
@@ -87,7 +90,10 @@
             return self._narrowmatch
 
         def setnarrowpats(self, newincludes, newexcludes):
-            narrowspec.save(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.
--- a/mercurial/narrowspec.py	Wed Feb 28 10:32:00 2018 -0800
+++ b/mercurial/narrowspec.py	Tue Feb 27 23:05:39 2018 -0800
@@ -12,7 +12,6 @@
 from .i18n import _
 from . import (
     error,
-    hg,
     match as matchmod,
     util,
 )
@@ -129,8 +128,6 @@
     return [i for i in includes if i.startswith('include:')]
 
 def load(repo):
-    if repo.shared():
-        repo = hg.sharedreposource(repo)
     try:
         spec = repo.vfs.read(FILENAME)
     except IOError as e:
@@ -146,8 +143,6 @@
 
 def save(repo, includepats, excludepats):
     spec = format(includepats, excludepats)
-    if repo.shared():
-        repo = hg.sharedreposource(repo)
     repo.vfs.write(FILENAME, spec)
 
 def restrictpatterns(req_includes, req_excludes, repo_includes, repo_excludes):