diff --git a/hgext/strip.py b/hgext/strip.py
index daceeed34ad28c4edde00b3b9e5d1933371438be_aGdleHQvc3RyaXAucHk=..8dbcb66ac16075efe1342d10e3c207eb074fde40_aGdleHQvc3RyaXAucHk= 100644
--- a/hgext/strip.py
+++ b/hgext/strip.py
@@ -156,10 +156,7 @@
                     rsrevs = repair.stripbmrevset(repo, marks[0])
                     revs.update(set(rsrevs))
             if not revs:
-                lock = tr = None
-                try:
-                    lock = repo.lock()
-                    tr = repo.transaction('bookmark')
+                with repo.lock(), repo.transaction('bookmark') as tr:
                     for bookmark in bookmarks:
                         del repomarks[bookmark]
                     repomarks.recordchange(tr)
@@ -163,11 +160,8 @@
                     for bookmark in bookmarks:
                         del repomarks[bookmark]
                     repomarks.recordchange(tr)
-                    tr.close()
-                    for bookmark in sorted(bookmarks):
-                        ui.write(_("bookmark '%s' deleted\n") % bookmark)
-                finally:
-                    release(lock, tr)
+                for bookmark in sorted(bookmarks):
+                    ui.write(_("bookmark '%s' deleted\n") % bookmark)
 
         if not revs:
             raise error.Abort(_('empty revision set'))