Mercurial > hg
changeset 32844:76bb53f8d374
unbundle: use context manager for transaction
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 15 Jun 2017 14:47:18 -0700 |
parents | a470bbb4e3af |
children | 58a6f64a7018 |
files | mercurial/commands.py |
diffstat | 1 files changed, 11 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Thu Jun 15 17:00:32 2017 -0700 +++ b/mercurial/commands.py Thu Jun 15 14:47:18 2017 -0700 @@ -5317,20 +5317,17 @@ f = hg.openpath(ui, fname) gen = exchange.readbundle(ui, f, fname) if isinstance(gen, bundle2.unbundle20): - tr = repo.transaction('unbundle') - try: - op = bundle2.applybundle(repo, gen, tr, source='unbundle', - url='bundle:' + fname) - tr.close() - except error.BundleUnknownFeatureError as exc: - raise error.Abort(_('%s: unknown bundle feature, %s') - % (fname, exc), - hint=_("see https://mercurial-scm.org/" - "wiki/BundleFeature for more " - "information")) - finally: - if tr: - tr.release() + with repo.transaction('unbundle') as tr: + try: + op = bundle2.applybundle(repo, gen, tr, + source='unbundle', + url='bundle:' + fname) + except error.BundleUnknownFeatureError as exc: + raise error.Abort( + _('%s: unknown bundle feature, %s') % (fname, exc), + hint=_("see https://mercurial-scm.org/" + "wiki/BundleFeature for more " + "information")) changes = [r.get('return', 0) for r in op.records['changegroup']] modheads = changegroup.combineresults(changes)