[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