Rev 41: Really fix the converter logic. in http://people.ubuntu.com/~robertc/baz2.0/plugins/index2/trunk

Robert Collins robertc at robertcollins.net
Tue Jul 15 10:33:38 BST 2008


At http://people.ubuntu.com/~robertc/baz2.0/plugins/index2/trunk

------------------------------------------------------------
revno: 41
revision-id: robertc at robertcollins.net-20080715093337-nfd1j17amjut3bfv
parent: robertc at robertcollins.net-20080715085345-9xos2vqqpfkmcb4p
committer: Robert Collins <robertc at robertcollins.net>
branch nick: trunk
timestamp: Tue 2008-07-15 19:33:37 +1000
message:
  Really fix the converter logic.
modified:
  repofmt.py                     repofmt.py-20080701113732-m1iu3n94ikbxdelb-1
  tests/test_repofmt.py          test_repofmt.py-20080704030345-bza6rrd6nf4sdmyy-1
=== modified file 'repofmt.py'
--- a/repofmt.py	2008-07-14 13:10:17 +0000
+++ b/repofmt.py	2008-07-15 09:33:37 +0000
@@ -358,11 +358,17 @@
 
     def _cancel_conversion(self):
         """Cancel a conversion that has not been completed."""
-        for name_to, name_from in reversed(self.pivot_renames):
-            try:
-                self.source._transport.rename(name_from, name_to)
-            except errors.NoSuchFile:
-                pass
+        transport = self.source._transport
+        if transport.has('old-pack-names'):
+            # pivot has moved old out of the way
+            for name_to, name_from in reversed(self.pivot_renames):
+                try:
+                    self.source._transport.rename(name_from, name_to)
+                except errors.NoSuchFile:
+                    pass
+        elif transport.has('oldindices'):
+            # back out a partial pivot
+            transport.rename('oldindices', 'indices')
         self._remove_tmp_index_dir()
         try:
             self.source._transport.delete('new-pack-names')

=== modified file 'tests/test_repofmt.py'
--- a/tests/test_repofmt.py	2008-07-14 13:10:17 +0000
+++ b/tests/test_repofmt.py	2008-07-15 09:33:37 +0000
@@ -44,6 +44,11 @@
     def setUp(self):
         TestCaseWithTransport.setUp(self)
         repo = self.make_repository('.', format='pack-0.92')
+        repo.bzrdir.create_branch()
+        tree = repo.bzrdir.create_workingtree()
+        # create two packs
+        tree.commit('post 1')
+        tree.commit('post 2')
         target = repofmt.RepositoryFormatPackBTreePlain()
         self.inter = repofmt.InterKnitPackBTreeFormat(repo, target)
 
@@ -228,11 +233,6 @@
         self.inter.unlock()
 
     def test__convert(self):
-        self.inter.source.bzrdir.create_branch()
-        tree = self.inter.source.bzrdir.create_workingtree()
-        # create two packs
-        tree.commit('post 1')
-        tree.commit('post 2')
         self.inter._prep_conversion()
         self.inter._convert(None)
         self.assertIndicesConverted()




More information about the bazaar-commits mailing list