D1838: phase: use context managers for lock and transaction
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Wed Jan 10 19:23:16 UTC 2018
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D1838
AFFECTED FILES
mercurial/commands.py
CHANGE DETAILS
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -3854,18 +3854,14 @@
revs = scmutil.revrange(repo, revs)
- lock = None
ret = 0
if targetphase is None:
# display
for r in revs:
ctx = repo[r]
ui.write('%i: %s\n' % (ctx.rev(), ctx.phasestr()))
else:
- tr = None
- lock = repo.lock()
- try:
- tr = repo.transaction("phase")
+ with repo.lock(), repo.transaction("phase") as tr:
# set phase
if not revs:
raise error.Abort(_('empty revision set'))
@@ -3878,11 +3874,6 @@
phases.advanceboundary(repo, tr, targetphase, nodes)
if opts['force']:
phases.retractboundary(repo, tr, targetphase, nodes)
- tr.close()
- finally:
- if tr is not None:
- tr.release()
- lock.release()
getphase = unfi._phasecache.phase
newdata = [getphase(unfi, r) for r in unfi]
changes = sum(newdata[r] != olddata[r] for r in unfi)
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list