[PATCH 6 of 7 V2] repoview: copy blocker code from computehidden
Sean Farley
sean.michael.farley at gmail.com
Fri Mar 28 17:53:20 UTC 2014
# HG changeset patch
# User Sean Farley <sean.michael.farley at gmail.com>
# Date 1396028401 18000
# Fri Mar 28 12:40:01 2014 -0500
# Node ID 6d11b3a77ddd1f311a6810844f8a3de948563097
# Parent fa7dce37aac4aaed22ba58a5a86ed886ed5e3a93
repoview: copy blocker code from computehidden
This is just a code copy of the how hidden blockers are currently computed and
will be used in an upcoming patch.
diff --git a/mercurial/repoview.py b/mercurial/repoview.py
--- a/mercurial/repoview.py
+++ b/mercurial/repoview.py
@@ -20,11 +20,27 @@ def hideablerevs(repo):
def _gethiddenblockers(repo):
"""Get revisions that will block hidden changesets from being filtered
This is a standalone function to help extensions to wrap it."""
- pass
+ assert not repo.changelog.filteredrevs
+ hideable = hideablerevs(repo)
+ blockers = []
+ if hideable:
+ cl = repo.changelog
+ firsthideable = min(hideable)
+ revs = cl.revs(start=firsthideable)
+ tofilter = repo.revs(
+ '(%ld) and children(%ld)', list(revs), list(hideable))
+ blockers = [r for r in tofilter if r not in hideable]
+ for par in repo[None].parents():
+ blockers.append(par.rev())
+ for bm in repo._bookmarks.values():
+ blockers.append(repo[bm].rev())
+ tags = [n for t, n in repo.localtags().iteritems()]
+ blockers.extend(repo[t].rev() for t in tags)
+ return blockers
def computehidden(repo):
"""compute the set of hidden revision to filter
During most operation hidden should be filtered."""
More information about the Mercurial-devel
mailing list