[PATCH 4 of 6 REPHASE-VIEW] phases: add a function to compute heads from root
pierre-yves.david at logilab.fr
pierre-yves.david at logilab.fr
Wed Oct 26 07:56:28 CDT 2011
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1319633307 -7200
# Node ID 511027cf334fdcf090950ecdc189d70b304eed70
# Parent 2e3bd3b14829703f74299257f466b6f16897bd3d
phases: add a function to compute heads from root
diff --git a/mercurial/phases.py b/mercurial/phases.py
--- a/mercurial/phases.py
+++ b/mercurial/phases.py
@@ -97,5 +97,22 @@ def pushphasehead(repo, key, oldphase, n
try:
moveboundary(repo, newphase, [bin(key)])
return 1
finally:
lock.release()
+
+def computeheads(repo, subset, roots):
+ """Compute phases heads for subset of node from upper phase roots
+
+ Accept unknown element in roots
+ """
+ krmtr = []
+ phaseroots = [[] for p in allphases]
+ for nhex, phase in roots.iteritems():
+ phaseroots[phase].append(bin(nhex))
+ phaseheads = [[] for p in allphases]
+ for phase in trackedphases:
+ toproof = phaseroots[phase+1]
+ rvset = repo.set('(::%ln) - (%ln::)', subset, toproof)
+ phaseheads[phase].extend(c.node() for c in rvset)
+ return phaseheads
+
More information about the Mercurial-devel
mailing list