diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -567,6 +567,14 @@ def close(self): self._writecaches() + def addvisibilityexceptions(self, exceptions): + # should be called on a filtered repository + pass + + def getvisibilityexceptions(self): + # should be called on a filtered repository + return set() + def _loadextensions(self): extensions.loadall(self.ui) diff --git a/mercurial/repoview.py b/mercurial/repoview.py --- a/mercurial/repoview.py +++ b/mercurial/repoview.py @@ -190,6 +190,8 @@ object.__setattr__(self, r'filtername', filtername) object.__setattr__(self, r'_clcachekey', None) object.__setattr__(self, r'_clcache', None) + # hidden hashes which should be visible + self._visibilityexceptions = set() # not a propertycache on purpose we shall implement a proper cache later @property @@ -231,6 +233,14 @@ return self return self.unfiltered().filtered(name) + def addvisibilityexceptions(self, revs): + """adds hidden revs which should be visible to set of exceptions""" + self._visibilityexceptions.update(revs) + + def getvisibilityexceptions(self): + """returns the set of hidden revs which should be visible""" + return self._visibilityexceptions + # everything access are forwarded to the proxied repo def __getattr__(self, attr): return getattr(self._unfilteredrepo, attr)