Mercurial > public > mercurial-scm > hg
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""" |