comparison mercurial/phases.py @ 45790:5d65e04b6a80

phases: convert registernew users to use revision sets Differential Revision: https://phab.mercurial-scm.org/D9233
author Joerg Sonnenberger <joerg@bec.de>
date Tue, 20 Oct 2020 17:32:45 +0200
parents 09735cde6275
children 77e129be10de
comparison
equal deleted inserted replaced
45789:09735cde6275 45790:5d65e04b6a80
508 self.dirty = True 508 self.dirty = True
509 509
510 tr.addfilegenerator(b'phase', (b'phaseroots',), self._write) 510 tr.addfilegenerator(b'phase', (b'phaseroots',), self._write)
511 tr.hookargs[b'phases_moved'] = b'1' 511 tr.hookargs[b'phases_moved'] = b'1'
512 512
513 def registernew(self, repo, tr, targetphase, nodes, revs=None): 513 def registernew(self, repo, tr, targetphase, revs):
514 if revs is None:
515 revs = []
516 repo = repo.unfiltered() 514 repo = repo.unfiltered()
517 self._retractboundary(repo, tr, targetphase, nodes, revs=revs) 515 self._retractboundary(repo, tr, targetphase, [], revs=revs)
518 if tr is not None and b'phases' in tr.changes: 516 if tr is not None and b'phases' in tr.changes:
519 phasetracking = tr.changes[b'phases'] 517 phasetracking = tr.changes[b'phases']
520 torev = repo.changelog.rev
521 phase = self.phase 518 phase = self.phase
522 revs = [torev(node) for node in nodes] + sorted(revs) 519 for rev in sorted(revs):
523 revs.sort()
524 for rev in revs:
525 revphase = phase(repo, rev) 520 revphase = phase(repo, rev)
526 _trackphasechange(phasetracking, rev, None, revphase) 521 _trackphasechange(phasetracking, rev, None, revphase)
527 repo.invalidatevolatilesets() 522 repo.invalidatevolatilesets()
528 523
529 def advanceboundary( 524 def advanceboundary(
720 phcache = repo._phasecache.copy() 715 phcache = repo._phasecache.copy()
721 phcache.retractboundary(repo, tr, targetphase, nodes) 716 phcache.retractboundary(repo, tr, targetphase, nodes)
722 repo._phasecache.replace(phcache) 717 repo._phasecache.replace(phcache)
723 718
724 719
725 def registernew(repo, tr, targetphase, nodes, revs=None): 720 def registernew(repo, tr, targetphase, revs):
726 """register a new revision and its phase 721 """register a new revision and its phase
727 722
728 Code adding revisions to the repository should use this function to 723 Code adding revisions to the repository should use this function to
729 set new changeset in their target phase (or higher). 724 set new changeset in their target phase (or higher).
730 """ 725 """
731 if revs is None:
732 revs = []
733 phcache = repo._phasecache.copy() 726 phcache = repo._phasecache.copy()
734 phcache.registernew(repo, tr, targetphase, nodes, revs=revs) 727 phcache.registernew(repo, tr, targetphase, revs)
735 repo._phasecache.replace(phcache) 728 repo._phasecache.replace(phcache)
736 729
737 730
738 def listphases(repo): 731 def listphases(repo):
739 """List phases root for serialization over pushkey""" 732 """List phases root for serialization over pushkey"""