mercurial/repoview.py
changeset 32476 e5e31b0fc924
parent 32475 1d70ec85ae00
child 32477 20c1c2fb8106
--- a/mercurial/repoview.py	Sun May 21 15:21:46 2017 +0200
+++ b/mercurial/repoview.py	Sun May 21 15:35:21 2017 +0200
@@ -224,8 +224,10 @@
         # changesets and remove those.
         dynamic = hidden & revealedrevs(repo)
         if dynamic:
-            blocked = cl.ancestors(dynamic, inclusive=True)
-            hidden = frozenset(r for r in hidden if r not in blocked)
+            pfunc = cl.parentrevs
+            mutablephases = (phases.draft, phases.secret)
+            mutable = repo._phasecache.getrevset(repo, mutablephases)
+            hidden = hidden - _domainancestors(pfunc, dynamic, mutable)
     return hidden
 
 def computeunserved(repo):