Patchwork D3777: debugbuilddag: use context manager for progress, locks, transaction

login
register
mail settings
Submitter phabricator
Date June 18, 2018, 7:05 a.m.
Message ID <differential-rev-PHID-DREV-rvfmzgha5ddcbq4rvpon-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/32238/
State Superseded
Headers show

Comments

phabricator - June 18, 2018, 7:05 a.m.
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  I minor side-effect is that .hg/localtags is now written before the
  transaction commits.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D3777

AFFECTED FILES
  mercurial/debugcommands.py

CHANGE DETAILS




To: martinvonz, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/mercurial/debugcommands.py b/mercurial/debugcommands.py
--- a/mercurial/debugcommands.py
+++ b/mercurial/debugcommands.py
@@ -181,15 +181,9 @@ 
         initialmergedlines.append("")
 
     tags = []
-
-    wlock = lock = tr = None
     progress = ui.makeprogress(_('building'), unit=_('revisions'),
                                total=total)
-    try:
-        wlock = repo.wlock()
-        lock = repo.lock()
-        tr = repo.transaction("builddag")
-
+    with progress, repo.wlock(), repo.lock(), repo.transaction("builddag"):
         at = -1
         atbranch = 'default'
         nodeids = []
@@ -268,13 +262,9 @@ 
                 ui.note(('branch %s\n' % data))
                 atbranch = data
             progress.update(id)
-        tr.close()
 
         if tags:
             repo.vfs.write("localtags", "".join(tags))
-    finally:
-        progress.complete()
-        release(tr, lock, wlock)
 
 def _debugchangegroup(ui, gen, all=None, indent=0, **opts):
     indent_string = ' ' * indent