diff --git a/mercurial/repoview.py b/mercurial/repoview.py --- a/mercurial/repoview.py +++ b/mercurial/repoview.py @@ -63,16 +63,12 @@ hidden.remove(p) stack.append(p) -def computehidden(repo): - """compute the set of hidden revision to filter - - During most operation hidden should be filtered.""" - assert not repo.changelog.filteredrevs - +def _computeperfiltername(repo, filtername): + """computes the set of revisions to filter for visible* filters""" hidden = hideablerevs(repo) if hidden: hidden = set(hidden - pinnedrevs(repo)) - hidden = hidden - repo.filtered('visible').getvisibilityexceptions() + hidden = hidden - repo.filtered(filtername).getvisibilityexceptions() pfunc = repo.changelog.parentrevs mutablephases = (phases.draft, phases.secret) mutable = repo._phasecache.getrevset(repo, mutablephases) @@ -81,6 +77,13 @@ _revealancestors(pfunc, hidden, visible) return frozenset(hidden) +def computehidden(repo): + """compute the set of hidden revision to filter + + During most operation hidden should be filtered.""" + assert not repo.changelog.filteredrevs + return _computeperfiltername(repo, 'visible') + def computeunserved(repo): """compute the set of revision that should be filtered when used a server