diff -r 306bba74c56e -r c777dac2b27c mercurial/repoview.py --- a/mercurial/repoview.py Sat May 27 22:43:37 2017 -0700 +++ b/mercurial/repoview.py Sat May 27 22:55:19 2017 -0700 @@ -44,19 +44,6 @@ pinned.update(rev(t[0]) for t in tags.values() if t[0] in nodemap) return pinned -def _consistencyblocker(pfunc, hideable, revs): - """return non-hideable changeset blocking hideable one - - For consistency, we cannot actually hide a changeset if one of it children - are visible, this function find such children. - """ - blockers = set() - for r in revs: - for p in pfunc(r): - if p != nullrev and p in hideable: - blockers.add(r) - break - return blockers def _revealancestors(pfunc, hidden, revs): """reveals contiguous chains of hidden ancestors of 'revs' by removing them @@ -89,16 +76,12 @@ mutablephases = (phases.draft, phases.secret) mutable = repo._phasecache.getrevset(repo, mutablephases) - visible = mutable - hidden - blockers = _consistencyblocker(pfunc, hidden, visible) - - # check if we have wd parents, bookmarks or tags pointing to hidden - # changesets and remove those. - blockers |= (hidden & pinnedrevs(repo)) - if blockers: + visible = set(mutable - hidden) + visible |= (hidden & pinnedrevs(repo)) + if visible: # don't modify possibly cached result of hideablerevs() hidden = hidden.copy() - _revealancestors(pfunc, hidden, blockers) + _revealancestors(pfunc, hidden, visible) return frozenset(hidden) def computeunserved(repo):