mercurial/commands.py
changeset 32844 76bb53f8d374
parent 32823 cb48dfd9672d
child 32882 0d98b11b8467
--- 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)