##// END OF EJS Templates
phases: add retractboundary function to move boundary backward...
Pierre-Yves David -
r15482:a667c89e default
parent child Browse files
Show More
@@ -61,9 +61,10 b' def filterunknown(repo, phaseroots=None)'
61 def advanceboundary(repo, targetphase, nodes):
61 def advanceboundary(repo, targetphase, nodes):
62 """Add nodes to a phase changing other nodes phases if necessary.
62 """Add nodes to a phase changing other nodes phases if necessary.
63
63
64 Simplify boundary to contains phase roots only."""
64 This function move boundary *forward* this means that all nodes are set
65 in the target phase or kept in a *lower* phase.
65
66
66 # move roots of lower states
67 Simplify boundary to contains phase roots only."""
67 for phase in xrange(targetphase + 1, len(allphases)):
68 for phase in xrange(targetphase + 1, len(allphases)):
68 # filter nodes that are not in a compatible phase already
69 # filter nodes that are not in a compatible phase already
69 # XXX rev phase cache might have been invalidated by a previous loop
70 # XXX rev phase cache might have been invalidated by a previous loop
@@ -81,3 +82,21 b' def advanceboundary(repo, targetphase, n'
81 if '_phaserev' in vars(repo):
82 if '_phaserev' in vars(repo):
82 del repo._phaserev
83 del repo._phaserev
83 repo._dirtyphases = True
84 repo._dirtyphases = True
85
86 def retractboundary(repo, targetphase, nodes):
87 """Set nodes back to a phase changing other nodes phases if necessary.
88
89 This function move boundary *backward* this means that all nodes are set
90 in the target phase or kept in a *higher* phase.
91
92 Simplify boundary to contains phase roots only."""
93 currentroots = repo._phaseroots[targetphase]
94 newroots = [n for n in nodes if repo[n].phase() < targetphase]
95 if newroots:
96 currentroots.update(newroots)
97 ctxs = repo.set('roots(%ln::)', currentroots)
98 currentroots.intersection_update(ctx.node() for ctx in ctxs)
99 if '_phaserev' in vars(repo):
100 del repo._phaserev
101 repo._dirtyphases = True
102
General Comments 0
You need to be logged in to leave comments. Login now