mercurial/repair.py
changeset 27157 5f2e4eb08e41
parent 26797 75d550b7d8f5
child 27553 56caab876bd8
--- a/mercurial/repair.py	Mon Nov 30 16:37:42 2015 -0800
+++ b/mercurial/repair.py	Mon Nov 30 16:38:29 2015 -0800
@@ -203,6 +203,18 @@
                 repo.ui.popbuffer()
             f.close()
 
+        for m in updatebm:
+            bm[m] = repo[newbmtarget].node()
+        lock = tr = None
+        try:
+            lock = repo.lock()
+            tr = repo.transaction('repair')
+            bm.recordchange(tr)
+            tr.close()
+        finally:
+            tr.release()
+            lock.release()
+
         # remove undo files
         for undovfs, undofile in repo.undofiles():
             try:
@@ -212,9 +224,6 @@
                     ui.warn(_('error removing %s: %s\n') %
                             (undovfs.join(undofile), str(e)))
 
-        for m in updatebm:
-            bm[m] = repo[newbmtarget].node()
-        bm.write()
     except: # re-raises
         if backupfile:
             ui.warn(_("strip failed, full bundle stored in '%s'\n")