D1746: repoview: add visibilityexceptions as an optional argument to repo.filtered()
pulkit (Pulkit Goyal)
phabricator at mercurial-scm.org
Tue Dec 26 14:11:40 UTC 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG3ad582b2895c: repoview: add visibilityexceptions as an optional argument to repo.filtered() (authored by pulkit, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D1746?vs=4606&id=4615
REVISION DETAIL
https://phab.mercurial-scm.org/D1746
AFFECTED FILES
mercurial/localrepo.py
mercurial/repoview.py
CHANGE DETAILS
diff --git a/mercurial/repoview.py b/mercurial/repoview.py
--- a/mercurial/repoview.py
+++ b/mercurial/repoview.py
@@ -187,11 +187,14 @@
subclasses of `localrepo`. Eg: `bundlerepo` or `statichttprepo`.
"""
- def __init__(self, repo, filtername):
+ def __init__(self, repo, filtername, visibilityexceptions=None):
object.__setattr__(self, r'_unfilteredrepo', repo)
object.__setattr__(self, r'filtername', filtername)
object.__setattr__(self, r'_clcachekey', None)
object.__setattr__(self, r'_clcache', None)
+ # revs which are exceptions and must not be hidden
+ object.__setattr__(self, r'_visibilityexceptions',
+ visibilityexceptions)
# not a propertycache on purpose we shall implement a proper cache later
@property
@@ -227,11 +230,11 @@
"""Return an unfiltered version of a repo"""
return self._unfilteredrepo
- def filtered(self, name):
+ def filtered(self, name, visibilityexceptions=None):
"""Return a filtered version of a repository"""
- if name == self.filtername:
+ if name == self.filtername and not visibilityexceptions:
return self
- return self.unfiltered().filtered(name)
+ return self.unfiltered().filtered(name, visibilityexceptions)
def __repr__(self):
return r'<%s:%s %r>' % (self.__class__.__name__,
diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -675,10 +675,10 @@
Intended to be overwritten by filtered repo."""
return self
- def filtered(self, name):
+ def filtered(self, name, visibilityexceptions=None):
"""Return a filtered version of a repository"""
cls = repoview.newtype(self.unfiltered().__class__)
- return cls(self, name)
+ return cls(self, name, visibilityexceptions)
@repofilecache('bookmarks', 'bookmarks.current')
def _bookmarks(self):
To: pulkit, #hg-reviewers, yuja
Cc: yuja, mercurial-devel
More information about the Mercurial-devel
mailing list