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