comparison mercurial/commands.py @ 35575:dda3cae3c9c5

phase: use context managers for lock and transaction Differential Revision: https://phab.mercurial-scm.org/D1838
author Martin von Zweigbergk <martinvonz@google.com>
date Wed, 10 Jan 2018 10:44:21 -0800
parents b14c8bcfbad9
children 4b68ca118d8d
comparison
equal deleted inserted replaced
35574:09285733ad71 35575:dda3cae3c9c5
3852 # the phase of a merge commit 3852 # the phase of a merge commit
3853 revs = [c.rev() for c in repo[None].parents()] 3853 revs = [c.rev() for c in repo[None].parents()]
3854 3854
3855 revs = scmutil.revrange(repo, revs) 3855 revs = scmutil.revrange(repo, revs)
3856 3856
3857 lock = None
3858 ret = 0 3857 ret = 0
3859 if targetphase is None: 3858 if targetphase is None:
3860 # display 3859 # display
3861 for r in revs: 3860 for r in revs:
3862 ctx = repo[r] 3861 ctx = repo[r]
3863 ui.write('%i: %s\n' % (ctx.rev(), ctx.phasestr())) 3862 ui.write('%i: %s\n' % (ctx.rev(), ctx.phasestr()))
3864 else: 3863 else:
3865 tr = None 3864 with repo.lock(), repo.transaction("phase") as tr:
3866 lock = repo.lock()
3867 try:
3868 tr = repo.transaction("phase")
3869 # set phase 3865 # set phase
3870 if not revs: 3866 if not revs:
3871 raise error.Abort(_('empty revision set')) 3867 raise error.Abort(_('empty revision set'))
3872 nodes = [repo[r].node() for r in revs] 3868 nodes = [repo[r].node() for r in revs]
3873 # moving revision from public to draft may hide them 3869 # moving revision from public to draft may hide them
3876 getphase = unfi._phasecache.phase 3872 getphase = unfi._phasecache.phase
3877 olddata = [getphase(unfi, r) for r in unfi] 3873 olddata = [getphase(unfi, r) for r in unfi]
3878 phases.advanceboundary(repo, tr, targetphase, nodes) 3874 phases.advanceboundary(repo, tr, targetphase, nodes)
3879 if opts['force']: 3875 if opts['force']:
3880 phases.retractboundary(repo, tr, targetphase, nodes) 3876 phases.retractboundary(repo, tr, targetphase, nodes)
3881 tr.close()
3882 finally:
3883 if tr is not None:
3884 tr.release()
3885 lock.release()
3886 getphase = unfi._phasecache.phase 3877 getphase = unfi._phasecache.phase
3887 newdata = [getphase(unfi, r) for r in unfi] 3878 newdata = [getphase(unfi, r) for r in unfi]
3888 changes = sum(newdata[r] != olddata[r] for r in unfi) 3879 changes = sum(newdata[r] != olddata[r] for r in unfi)
3889 cl = unfi.changelog 3880 cl = unfi.changelog
3890 rejected = [n for n in nodes 3881 rejected = [n for n in nodes