[Pkg-bazaar-commits] ./bzr/unstable r769: - append to branch revision history using AtomicFile

Martin Pool mbp at sourcefrog.net
Fri Apr 10 08:20:59 UTC 2009


------------------------------------------------------------
revno: 769
committer: Martin Pool <mbp at sourcefrog.net>
timestamp: Fri 2005-06-24 19:00:35 +1000
message:
  - append to branch revision history using AtomicFile
modified:
  bzrlib/branch.py
-------------- next part --------------
=== modified file 'bzrlib/branch.py'
--- a/bzrlib/branch.py	2005-06-24 07:05:23 +0000
+++ b/bzrlib/branch.py	2005-06-24 09:00:35 +0000
@@ -521,22 +521,18 @@
 
 
     def append_revision(self, revision_id):
+        from bzrlib.atomicfile import AtomicFile
+
         mutter("add {%s} to revision-history" % revision_id)
-        rev_history = self.revision_history()
-
-        tmprhname = self.controlfilename('revision-history.tmp')
-        rhname = self.controlfilename('revision-history')
-        
-        f = file(tmprhname, 'wt')
-        rev_history.append(revision_id)
-        f.write('\n'.join(rev_history))
-        f.write('\n')
-        f.close()
-
-        if sys.platform == 'win32':
-            os.remove(rhname)
-        os.rename(tmprhname, rhname)
-        
+        rev_history = self.revision_history() + [revision_id]
+
+        f = AtomicFile(self.controlfilename('revision-history'))
+        try:
+            for rev_id in rev_history:
+                print >>f, rev_id
+            f.commit()
+        finally:
+            f.close()
 
 
     def get_revision(self, revision_id):



More information about the Pkg-bazaar-commits mailing list