# HG changeset patch # User Pierre-Yves David # Date 2015-04-03 21:37:52 # Node ID ad6dea5d96f219ab4cdd12155081b2ba1879dbe6 # Parent cde57a8d8fe712942b71db02eb764e3c3f4bb3e3 repoview: skip public parent earlier in _getstatichidden Public changeset have nothing to offer regarding hidden changeset. Lets not add them to the heap at all. diff --git a/mercurial/repoview.py b/mercurial/repoview.py --- a/mercurial/repoview.py +++ b/mercurial/repoview.py @@ -45,9 +45,6 @@ def _getstatichidden(repo): heappush = heapq.heappush while heap: rev = -heappop(heap) - # Skip nodes which are public (guaranteed to not be hidden) - if not getphase(repo, rev): - continue # All children have been processed so at that point, if no children # removed 'rev' from the 'hidden' set, 'rev' is going to be hidden. blocker = rev not in hidden @@ -57,7 +54,9 @@ def _getstatichidden(repo): if blocker: # If visible, ensure parent will be visible too hidden.discard(parent) - heappush(heap, -parent) + # Skip nodes which are public (guaranteed to not be hidden) + if getphase(repo, rev): + heappush(heap, -parent) return hidden def _getdynamicblockers(repo):