Show More
@@ -348,7 +348,30 b' class phasecache(object):' | |||||
348 | repo.invalidatevolatilesets() |
|
348 | repo.invalidatevolatilesets() | |
349 |
|
349 | |||
350 | def retractboundary(self, repo, tr, targetphase, nodes): |
|
350 | def retractboundary(self, repo, tr, targetphase, nodes): | |
351 | self._retractboundary(repo, tr, targetphase, nodes) |
|
351 | oldroots = self.phaseroots[:targetphase + 1] | |
|
352 | if tr is None: | |||
|
353 | phasetracking = None | |||
|
354 | else: | |||
|
355 | phasetracking = tr.changes.get('phases') | |||
|
356 | repo = repo.unfiltered() | |||
|
357 | if (self._retractboundary(repo, tr, targetphase, nodes) | |||
|
358 | and phasetracking is not None): | |||
|
359 | ||||
|
360 | # find the affected revisions | |||
|
361 | new = self.phaseroots[targetphase] | |||
|
362 | old = oldroots[targetphase] | |||
|
363 | affected = set(repo.revs('(%ln::) - (%ln::)', new, old)) | |||
|
364 | ||||
|
365 | # find the phase of the affected revision | |||
|
366 | for phase in xrange(targetphase, -1, -1): | |||
|
367 | if phase: | |||
|
368 | roots = oldroots[phase] | |||
|
369 | revs = set(repo.revs('%ln::%ld', roots, affected)) | |||
|
370 | affected -= revs | |||
|
371 | else: # public phase | |||
|
372 | revs = affected | |||
|
373 | for r in revs: | |||
|
374 | _trackphasechange(phasetracking, r, phase, targetphase) | |||
352 | repo.invalidatevolatilesets() |
|
375 | repo.invalidatevolatilesets() | |
353 |
|
376 | |||
354 | def _retractboundary(self, repo, tr, targetphase, nodes): |
|
377 | def _retractboundary(self, repo, tr, targetphase, nodes): |
General Comments 0
You need to be logged in to leave comments.
Login now