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