# HG changeset patch # User Martin von Zweigbergk # Date 1497563238 25200 # Node ID 76bb53f8d374d20f38a566d3810e7f56e8c0895c # Parent a470bbb4e3af96fb68d1550bb3614b685c3f30cc unbundle: use context manager for transaction diff -r a470bbb4e3af -r 76bb53f8d374 mercurial/commands.py --- 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)