Rev 294: Support conversions with branching schemes other than trunk-0 in http://people.samba.org/bzr/jelmer/bzr-svn/bzr.dev

Jelmer Vernooij jelmer at samba.org
Mon Dec 25 23:10:14 GMT 2006


------------------------------------------------------------
revno: 294
revision-id: jelmer at samba.org-20061225230933-0so0ha9amws46pc4
parent: jelmer at samba.org-20061225230518-a66fwk0gvjolqhfu
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: main
timestamp: Tue 2006-12-26 00:09:33 +0100
message:
  Support conversions with branching schemes other than trunk-0
modified:
  convert.py                     svn2bzr.py-20051018015439-cb4563bff29e632d
  repository.py                  repository.py-20060306123302-1f8c5069b3fe0265
  tests/test_convert.py          test_convert.py-20060705203611-b1l0bapeku6foco0-1
  tests/test_repos.py            test_repos.py-20060508151940-ddc49a59257ca712
=== modified file 'convert.py'
--- a/convert.py	2006-12-19 21:45:25 +0000
+++ b/convert.py	2006-12-25 23:09:33 +0000
@@ -67,11 +67,17 @@
             target_repos = Repository.open(output_dir)
             assert target_repos.is_shared()
         except NotBranchError:
-            target_repos = BzrDir.create_repository(output_dir, shared=True)
+            if scheme.is_branch(""):
+                BzrDir.create_branch_and_repo(output_dir)
+            else:
+                BzrDir.create_repository(output_dir, shared=True)
+            target_repos = Repository.open(output_dir)
         target_repos.set_make_working_trees(working_trees)
 
     try:
-        source_repos = SvnRepository.open(url+"/trunk")
+        source_repos = SvnRepository.open(url)
+
+        source_repos.set_branching_scheme(scheme)
 
         branches = list(source_repos.find_branches())
 

=== modified file 'repository.py'
--- a/repository.py	2006-12-25 02:32:49 +0000
+++ b/repository.py	2006-12-25 23:09:33 +0000
@@ -229,6 +229,10 @@
         self.branchprop_list = BranchPropertyList(self._log, self.cachedb)
         self.fileid_map = SimpleFileIdMap(self._log, self.cachedb)
 
+    def set_branching_scheme(self, scheme):
+        self.scheme = scheme
+        self._log.scheme = scheme
+
     def _warn_if_deprecated(self):
         # This class isn't deprecated
         pass

=== modified file 'tests/test_convert.py'
--- a/tests/test_convert.py	2006-12-19 23:50:15 +0000
+++ b/tests/test_convert.py	2006-12-25 23:09:33 +0000
@@ -120,6 +120,30 @@
         convert_repository(dumpfile, branch_path, NoBranchingScheme())
         branch = Repository.open(branch_path)
         self.assertEqual([], branch.all_revision_ids())
+        Branch.open(branch_path)
+
+    def test_dumpfile_open_empty_trunk(self):
+        dumpfile = os.path.join(self.test_dir, "dumpfile")
+        open(dumpfile, 'w').write(
+"""SVN-fs-dump-format-version: 2
+
+UUID: 6987ef2d-cd6b-461f-9991-6f1abef3bd59
+
+Revision-number: 0
+Prop-content-length: 56
+Content-length: 56
+
+K 8
+svn:date
+V 27
+2006-07-02T13:14:51.972532Z
+PROPS-END
+""")
+        branch_path = os.path.join(self.test_dir, "f")
+        convert_repository(dumpfile, branch_path, TrunkBranchingScheme())
+        repository = Repository.open(branch_path)
+        self.assertEqual([], repository.all_revision_ids())
+        self.assertRaises(NotBranchError, Branch.open, branch_path)
 
     def test_open_internal(self):
         filename = os.path.join(self.test_dir, "dumpfile")

=== modified file 'tests/test_repos.py'
--- a/tests/test_repos.py	2006-12-25 04:43:45 +0000
+++ b/tests/test_repos.py	2006-12-25 23:09:33 +0000
@@ -29,7 +29,7 @@
 
 from convert import load_dumpfile
 import format
-from scheme import TrunkBranchingScheme
+from scheme import TrunkBranchingScheme, NoBranchingScheme
 from transport import SvnRaTransport
 from tests import TestCaseWithSubversionRepository
 from repository import (parse_svn_revision_id, generate_svn_revision_id, 
@@ -732,6 +732,11 @@
                 "svn-v%d:1@%s-" % (MAPPING_VERSION, oldrepos.uuid))
         self.assertEqual([], rev.parent_ids)
 
+    def test_set_branching_scheme(self):
+        repos_url = self.make_client('d', 'dc')
+        repos = Repository.open(repos_url)
+        repos.set_branching_scheme(NoBranchingScheme())
+
     def test_fetch_crosscopy(self):
         repos_url = self.make_client('d', 'dc')
         self.build_tree({'dc/trunk/adir/afile': "data", 




More information about the bazaar-commits mailing list