Show More
@@ -348,7 +348,30 b' class phasecache(object):' | |||
|
348 | 348 | repo.invalidatevolatilesets() |
|
349 | 349 | |
|
350 | 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 | 375 | repo.invalidatevolatilesets() |
|
353 | 376 | |
|
354 | 377 | def _retractboundary(self, repo, tr, targetphase, nodes): |
General Comments 0
You need to be logged in to leave comments.
Login now