Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 22050:56ccd95b49c6
phase: wrap `hg phases` phase movement in a transaction
Phases are not yet inside the transaction, but we need to prepare for it. So we
wrap the phase movement inside a transaction.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 06 Aug 2014 00:50:53 -0700 |
parents | 0aa2cb965f4c |
children | 616a455b02ca |
comparison
equal
deleted
inserted
replaced
22049:86c5318b8e5b | 22050:56ccd95b49c6 |
---|---|
4572 # display | 4572 # display |
4573 for r in revs: | 4573 for r in revs: |
4574 ctx = repo[r] | 4574 ctx = repo[r] |
4575 ui.write('%i: %s\n' % (ctx.rev(), ctx.phasestr())) | 4575 ui.write('%i: %s\n' % (ctx.rev(), ctx.phasestr())) |
4576 else: | 4576 else: |
4577 tr = None | |
4577 lock = repo.lock() | 4578 lock = repo.lock() |
4578 try: | 4579 try: |
4580 tr = repo.transaction("phase") | |
4579 # set phase | 4581 # set phase |
4580 if not revs: | 4582 if not revs: |
4581 raise util.Abort(_('empty revision set')) | 4583 raise util.Abort(_('empty revision set')) |
4582 nodes = [repo[r].node() for r in revs] | 4584 nodes = [repo[r].node() for r in revs] |
4583 olddata = repo._phasecache.getphaserevs(repo)[:] | 4585 olddata = repo._phasecache.getphaserevs(repo)[:] |
4584 phases.advanceboundary(repo, targetphase, nodes) | 4586 phases.advanceboundary(repo, targetphase, nodes) |
4585 if opts['force']: | 4587 if opts['force']: |
4586 phases.retractboundary(repo, targetphase, nodes) | 4588 phases.retractboundary(repo, targetphase, nodes) |
4589 tr.close() | |
4587 finally: | 4590 finally: |
4591 if tr is not None: | |
4592 tr.release() | |
4588 lock.release() | 4593 lock.release() |
4589 # moving revision from public to draft may hide them | 4594 # moving revision from public to draft may hide them |
4590 # We have to check result on an unfiltered repository | 4595 # We have to check result on an unfiltered repository |
4591 unfi = repo.unfiltered() | 4596 unfi = repo.unfiltered() |
4592 newdata = repo._phasecache.getphaserevs(unfi) | 4597 newdata = repo._phasecache.getphaserevs(unfi) |