Mercurial > hg-stable
comparison mercurial/phases.py @ 15649:ca7c4254a21a
phases: add a function to compute heads from root
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Thu, 15 Dec 2011 02:18:24 +0100 |
parents | 79cc89de5be1 |
children | 7fba5a245acc |
comparison
equal
deleted
inserted
replaced
15648:79cc89de5be1 | 15649:ca7c4254a21a |
---|---|
138 return 1 | 138 return 1 |
139 else: | 139 else: |
140 return 0 | 140 return 0 |
141 finally: | 141 finally: |
142 lock.release() | 142 lock.release() |
143 | |
144 def analyzeremotephases(repo, subset, roots): | |
145 """Compute phases heads and root in a subset of node from root dict | |
146 | |
147 * subset is heads of the subset | |
148 * roots is {<nodeid> => phase} mapping. key and value are string. | |
149 | |
150 Accept unknown element input | |
151 """ | |
152 # build list from dictionary | |
153 phaseroots = [[] for p in allphases] | |
154 for nhex, phase in roots.iteritems(): | |
155 if nhex == 'publishing': # ignore data related to publish option | |
156 continue | |
157 node = bin(nhex) | |
158 phase = int(phase) | |
159 if node in repo: | |
160 phaseroots[phase].append(node) | |
161 # compute heads | |
162 phaseheads = [[] for p in allphases] | |
163 for phase in allphases[:-1]: | |
164 toproof = phaseroots[phase + 1] | |
165 revset = repo.set('heads((%ln + parents(%ln)) - (%ln::%ln))', | |
166 subset, toproof, toproof, subset) | |
167 phaseheads[phase].extend(c.node() for c in revset) | |
168 return phaseheads, phaseroots | |
169 |