[PATCH 3 of 6] transaction: reset transaction on abort

Henrik Stuart hg at hstuart.dk
Wed Apr 22 02:58:45 CDT 2009


# HG changeset patch
# User Henrik Stuart <hg at hstuart.dk>
# Date 1240164152 -7200
# Node ID f8ad118521b5e9fad24b54ea1691b5d4ddb55dde
# Parent  2151199c0ee8b815dc83ec410a3721d0a60cbe04
transaction: reset transaction on abort

Prevent the use of the transaction after it has been aborted.

Co-contributor: Sune Foldager <cryo at cyanite.org>

diff -r 2151199c0ee8 -r f8ad118521b5 mercurial/transaction.py
--- a/mercurial/transaction.py	Mon Apr 20 11:18:22 2009 +0200
+++ b/mercurial/transaction.py	Sun Apr 19 20:02:32 2009 +0200
@@ -101,6 +101,9 @@
         self._abort()
 
     def _abort(self):
+        self.count = 0
+        self.file.close()
+
         if not self.entries: return
 
         self.report(_("transaction abort!\n"))
@@ -116,13 +119,14 @@
         self.entries = []
 
         if not failed:
-            self.file.close()
             os.unlink(self.journal)
-            self.journal = None
             self.report(_("rollback completed\n"))
         else:
             self.report(_("rollback failed - please run hg recover\n"))
 
+        self.journal = None
+
+
 def rollback(opener, file):
     files = {}
     for l in open(file).readlines():


More information about the Mercurial-devel mailing list