Show More
@@ -294,6 +294,19 b' class phasecache(object):' | |||
|
294 | 294 | tr.addfilegenerator('phase', ('phaseroots',), self._write) |
|
295 | 295 | tr.hookargs['phases_moved'] = '1' |
|
296 | 296 | |
|
297 | def registernew(self, repo, tr, targetphase, nodes): | |
|
298 | repo = repo.unfiltered() | |
|
299 | self._retractboundary(repo, tr, targetphase, nodes) | |
|
300 | if tr is not None and 'phases' in tr.changes: | |
|
301 | phasetracking = tr.changes['phases'] | |
|
302 | torev = repo.changelog.rev | |
|
303 | phase = self.phase | |
|
304 | for n in nodes: | |
|
305 | rev = torev(n) | |
|
306 | revphase = phase(repo, rev) | |
|
307 | _trackphasechange(phasetracking, rev, None, revphase) | |
|
308 | repo.invalidatevolatilesets() | |
|
309 | ||
|
297 | 310 | def advanceboundary(self, repo, tr, targetphase, nodes): |
|
298 | 311 | """Set all 'nodes' to phase 'targetphase' |
|
299 | 312 | |
@@ -417,6 +430,16 b' def retractboundary(repo, tr, targetphas' | |||
|
417 | 430 | phcache.retractboundary(repo, tr, targetphase, nodes) |
|
418 | 431 | repo._phasecache.replace(phcache) |
|
419 | 432 | |
|
433 | def registernew(repo, tr, targetphase, nodes): | |
|
434 | """register a new revision and its phase | |
|
435 | ||
|
436 | Code adding revisions to the repository should use this function to | |
|
437 | set new changeset in their target phase (or higher). | |
|
438 | """ | |
|
439 | phcache = repo._phasecache.copy() | |
|
440 | phcache.registernew(repo, tr, targetphase, nodes) | |
|
441 | repo._phasecache.replace(phcache) | |
|
442 | ||
|
420 | 443 | def listphases(repo): |
|
421 | 444 | """List phases root for serialization over pushkey""" |
|
422 | 445 | # Use ordered dictionary so behavior is deterministic. |
General Comments 0
You need to be logged in to leave comments.
Login now