[PATCH 3 of 7 🚂] transaction: mark backup-related attributes private

Pierre-Yves David pierre-yves.david at ens-lyon.org
Fri Nov 7 10:25:56 CST 2014


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at fb.com>
# Date 1415179917 0
#      Wed Nov 05 09:31:57 2014 +0000
# Node ID eb05028743f69b00b2f5ab62d60880a6514875e2
# Parent  579eeefd6ae1e144a2982ee914661d8f6e057a89
transaction: mark backup-related attributes private

As the transaction is gaining more API and attribute, tt is important to clarify
what is the public API.

diff --git a/mercurial/transaction.py b/mercurial/transaction.py
--- a/mercurial/transaction.py
+++ b/mercurial/transaction.py
@@ -81,26 +81,26 @@ class transaction(object):
         self.opener = opener
         self.after = after
         self.onclose = onclose
         self.onabort = onabort
         self.entries = []
+        self.map = {}
         # a list of ('path', 'backuppath') entries.
-        self.backupentries = []
-        self.map = {}
-        self.backupmap = {}
+        self._backupentries = []
+        self._backupmap = {}
         self.journal = journal
         self._queue = []
         # a dict of arguments to be passed to hooks
         self.hookargs = {}
 
-        self.backupjournal = "%s.backupfiles" % journal
+        self._backupjournal = "%s.backupfiles" % journal
         self.file = opener.open(self.journal, "w")
-        self.backupsfile = opener.open(self.backupjournal, 'w')
-        self.backupsfile.write('%d\n' % version)
+        self._backupsfile = opener.open(self._backupjournal, 'w')
+        self._backupsfile.write('%d\n' % version)
         if createmode is not None:
             opener.chmod(self.journal, createmode & 0666)
-            opener.chmod(self.backupjournal, createmode & 0666)
+            opener.chmod(self._backupjournal, createmode & 0666)
 
         # hold file generations to be performed on commit
         self._filegenerators = {}
         # hold callbalk to write pending data for hooks
         self._pendingcallback = {}
@@ -121,11 +121,11 @@ class transaction(object):
 
     @active
     def endgroup(self):
         q = self._queue.pop()
         self.entries.extend(q[0])
-        self.backupentries.extend(q[1])
+        self._backupentries.extend(q[1])
 
         offsets = []
         backups = []
         for f, o, _data in q[0]:
             offsets.append((f, o))
@@ -136,16 +136,16 @@ class transaction(object):
         d = ''.join(['%s\0%d\n' % (f, o) for f, o in offsets])
         self.file.write(d)
         self.file.flush()
 
         d = ''.join(['%s\0%s\n' % (f, b) for f, b in backups])
-        self.backupsfile.write(d)
-        self.backupsfile.flush()
+        self._backupsfile.write(d)
+        self._backupsfile.flush()
 
     @active
     def add(self, file, offset, data=None):
-        if file in self.map or file in self.backupmap:
+        if file in self.map or file in self._backupmap:
             return
         if self._queue:
             self._queue[-1][0].append((file, offset, data))
             return
 
@@ -165,11 +165,11 @@ class transaction(object):
 
         * `file`: the file path, relative to .hg/store
         * `hardlink`: use a hardlink to quickly create the backup
         """
 
-        if file in self.map or file in self.backupmap:
+        if file in self.map or file in self._backupmap:
             return
         backupfile = "%s.backup.%s" % (self.journal, file)
         if vfs is None:
             vfs = self.opener
         if vfs.exists(file):
@@ -182,14 +182,14 @@ class transaction(object):
 
         if self._queue:
             self._queue[-1][1].append((file, backupfile))
             return
 
-        self.backupentries.append((file, backupfile))
-        self.backupmap[file] = len(self.backupentries) - 1
-        self.backupsfile.write("%s\0%s\n" % (file, backupfile))
-        self.backupsfile.flush()
+        self._backupentries.append((file, backupfile))
+        self._backupmap[file] = len(self._backupentries) - 1
+        self._backupsfile.write("%s\0%s\n" % (file, backupfile))
+        self._backupsfile.flush()
 
     @active
     def addfilegenerator(self, genid, filenames, genfunc, order=0, vfs=None):
         """add a function to generates some files at transaction commit
 
@@ -236,12 +236,12 @@ class transaction(object):
 
     @active
     def find(self, file):
         if file in self.map:
             return self.entries[self.map[file]]
-        if file in self.backupmap:
-            return self.backupentries[self.backupmap[file]]
+        if file in self._backupmap:
+            return self._backupentries[self._backupmap[file]]
         return None
 
     @active
     def replace(self, file, offset, data=None):
         '''
@@ -322,21 +322,21 @@ class transaction(object):
 
         self.count -= 1
         if self.count != 0:
             return
         self.file.close()
-        self.backupsfile.close()
+        self._backupsfile.close()
         self.entries = []
         if self.after:
             self.after()
         if self.opener.isfile(self.journal):
             self.opener.unlink(self.journal)
-        if self.opener.isfile(self.backupjournal):
-            self.opener.unlink(self.backupjournal)
-            for _f, b in self.backupentries:
+        if self.opener.isfile(self._backupjournal):
+            self.opener.unlink(self._backupjournal)
+            for _f, b in self._backupentries:
                 self.opener.unlink(b)
-        self.backupentries = []
+        self._backupentries = []
         self.journal = None
         # run post close action
         categories = sorted(self._postclosecallback)
         for cat in categories:
             self._postclosecallback[cat]()
@@ -350,28 +350,28 @@ class transaction(object):
 
     def _abort(self):
         self.count = 0
         self.usages = 0
         self.file.close()
-        self.backupsfile.close()
+        self._backupsfile.close()
 
         if self.onabort is not None:
             self.onabort()
 
         try:
-            if not self.entries and not self.backupentries:
+            if not self.entries and not self._backupentries:
                 if self.journal:
                     self.opener.unlink(self.journal)
-                if self.backupjournal:
-                    self.opener.unlink(self.backupjournal)
+                if self._backupjournal:
+                    self.opener.unlink(self._backupjournal)
                 return
 
             self.report(_("transaction abort!\n"))
 
             try:
                 _playback(self.journal, self.report, self.opener,
-                          self.entries, self.backupentries, False)
+                          self.entries, self._backupentries, False)
                 self.report(_("rollback completed\n"))
             except Exception:
                 self.report(_("rollback failed - please run hg recover\n"))
         finally:
             self.journal = None


More information about the Mercurial-devel mailing list