Rev 321: Merge commits done on train. in http://people.samba.org/bzr/jelmer/bzr-svn/bzr.dev

Jelmer Vernooij jelmer at samba.org
Wed Jan 3 00:30:38 GMT 2007


------------------------------------------------------------
revno: 321
revision-id: jelmer at samba.org-20061228183753-j6sxwwoaf81p6a50
parent: jelmer at samba.org-20061228044650-1hvjud25we4tb4tr
parent: jelmer at samba.org-20061228170228-qdhgqj1akrc7b45s
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: main
timestamp: Thu 2006-12-28 19:37:53 +0100
message:
  Merge commits done on train.
modified:
  fetch.py                       fetch.py-20060625004942-x2lfaib8ra707a8p-1
  tests/test_scheme.py           test_scheme.py-20060621221855-va2xabhlxpmc9llx-1
    ------------------------------------------------------------
    revno: 320.1.3
    merged: jelmer at samba.org-20061228170228-qdhgqj1akrc7b45s
    parent: jelmer at samba.org-20061228170154-n70amzdyj9ejqx16
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: main
    timestamp: Thu 2006-12-28 18:02:28 +0100
    message:
      Remove unused local map obtain code.
    ------------------------------------------------------------
    revno: 320.1.2
    merged: jelmer at samba.org-20061228170154-n70amzdyj9ejqx16
    parent: jelmer at samba.org-20061228165251-rr0jtciqj4f1xwya
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: main
    timestamp: Thu 2006-12-28 18:01:54 +0100
    message:
      Split out tests a bit more.
    ------------------------------------------------------------
    revno: 320.1.1
    merged: jelmer at samba.org-20061228165251-rr0jtciqj4f1xwya
    parent: jelmer at samba.org-20061228044650-1hvjud25we4tb4tr
    committer: Jelmer Vernooij <jelmer at samba.org>
    branch nick: main
    timestamp: Thu 2006-12-28 17:52:51 +0100
    message:
      Use old inventory to obtain old file ids, saving a rather expensive 
      path_to_file_id() call.
=== modified file 'fetch.py'
--- a/fetch.py	2006-12-27 04:21:19 +0000
+++ b/fetch.py	2006-12-28 17:02:28 +0000
@@ -42,14 +42,14 @@
     return s.hexdigest()
 
 class RevisionBuildEditor(svn.delta.Editor):
-    def __init__(self, source, target, branch_path, revnum, prev_inventory, revid, svn_revprops, id_map, parent_branch, parent_id_map):
+    def __init__(self, source, target, branch_path, revnum, prev_inventory, revid, svn_revprops, id_map, parent_branch):
         self.branch_path = branch_path
-        self.inventory = prev_inventory
+        self.old_inventory = prev_inventory
+        self.inventory = copy(prev_inventory)
         self.revid = revid
         self.revnum = revnum
         self.id_map = id_map
         self.parent_branch = parent_branch
-        self.parent_id_map = parent_id_map
         self.source = source
         self.target = target
         self.transact = target.get_transaction()
@@ -120,7 +120,8 @@
     def open_directory(self, path, parent_baton, base_revnum, pool):
         file_id, revision_id = self.id_map[path]
         assert base_revnum >= 0
-        base_file_id, base_revid = self.source.path_to_file_id(base_revnum, os.path.join(self.parent_branch, path))
+        base_file_id = self.old_inventory.path2id(path)
+        base_revid = self.old_inventory[base_file_id].revision
         if file_id == base_file_id:
             self.dir_baserev[file_id] = [base_revid]
             ie = self.inventory[file_id]
@@ -192,7 +193,8 @@
         return path
 
     def open_file(self, path, parent_id, base_revnum, pool):
-        base_file_id, base_revid = self.source.path_to_file_id(base_revnum, os.path.join(self.parent_branch, path))
+        base_file_id = self.old_inventory.path2id(path)
+        base_revid = self.old_inventory[base_file_id].revision
         file_id, revid = self.id_map[path]
         self.is_executable = None
         self.is_symlink = (self.inventory[base_file_id].kind == 'symlink')
@@ -324,15 +326,12 @@
                 parent_branch = None
 
             if parent_revid is None:
-                parent_id_map = {"": (ROOT_ID, None)}
                 id_map = self.source.get_fileid_map(revnum, branch)
                 parent_inv = Inventory(ROOT_ID)
             elif prev_revid != parent_revid:
-                parent_id_map = self.source.get_fileid_map(parent_revnum, parent_branch)
                 id_map = self.source.get_fileid_map(revnum, branch)
                 parent_inv = self.target.get_inventory(parent_revid)
             else:
-                parent_id_map = copy(id_map)
                 self.source.transform_fileid_map(self.source.uuid, 
                                         revnum, branch, 
                                         changes, id_map)
@@ -342,7 +341,7 @@
             editor = RevisionBuildEditor(self.source, self.target, branch, 
                                          revnum, parent_inv, revid, 
                                      self.source._log.get_revision_info(revnum),
-                                     id_map, parent_branch, parent_id_map)
+                                     id_map, parent_branch)
 
             pool = Pool()
             edit, edit_baton = svn.delta.make_editor(editor, pool)

=== modified file 'tests/test_scheme.py'
--- a/tests/test_scheme.py	2006-12-26 22:04:29 +0000
+++ b/tests/test_scheme.py	2006-12-28 17:01:54 +0000
@@ -96,12 +96,26 @@
 
     def test_is_branch_slash(self):
         self.assertFalse(self.scheme.is_branch("/"))
+
+    def test_is_branch_slashsub(self):
         self.assertTrue(self.scheme.is_branch("/foo"))
+
+    def test_is_branch_sub(self):
         self.assertTrue(self.scheme.is_branch("foo"))
+
+    def test_is_branch_sub_sub_slash(self):
         self.assertFalse(self.scheme.is_branch("/foo/foo"))
+
+    def test_is_branch_sub_sub(self):
         self.assertFalse(self.scheme.is_branch("foo/bar"))
+
+    def test_is_branch_unknown(self):
         self.assertFalse(self.scheme.is_branch("foobla"))
+
+    def test_is_branch_doubleslash(self):
         self.assertTrue(self.scheme.is_branch("//foo/"))
+
+    def test_is_branch_nested(self):
         self.assertTrue(self.scheme.is_branch("bar/bloe"))
 
     def test_unprefix_notbranch_empty(self):
@@ -191,40 +205,72 @@
         self.assertFalse(scheme.is_branch("/branches/trunk"))
         self.assertTrue(scheme.is_branch("/bar/branches/trunk"))
 
-    def test_unprefix(self):
-        scheme = TrunkBranchingScheme()
-        self.assertRaises(NotBranchError, scheme.unprefix, "")
-        self.assertRaises(NotBranchError, scheme.unprefix, "branches")
-        self.assertRaises(NotBranchError, scheme.unprefix, "/")
-        self.assertRaises(NotBranchError, scheme.unprefix, "blie/bloe/bla")
-        self.assertRaises(NotBranchError, scheme.unprefix, "aa")
-        self.assertEqual(scheme.unprefix("/trunk"), ("trunk", ""))
-        self.assertEqual(scheme.unprefix("branches/ver1/foo"), ("branches/ver1", "foo"))
-        self.assertEqual(scheme.unprefix("tags/ver1"), ("tags/ver1", ""))
-        self.assertEqual(scheme.unprefix("//trunk/foo"), ("trunk", "foo"))
-        self.assertEqual(scheme.unprefix("/tags/ver2/foo/bar"), ("tags/ver2", "foo/bar"))
+    def test_unprefix_empty(self):
+        self.assertRaises(NotBranchError, TrunkBranchingScheme().unprefix, "")
+
+    def test_unprefix_topdir(self):
+        self.assertRaises(NotBranchError, TrunkBranchingScheme().unprefix, "branches")
+
+    def test_unprefix_slash(self):
+        self.assertRaises(NotBranchError, TrunkBranchingScheme().unprefix, "/")
+
+    def test_unprefix_unknown_sub(self):
+        self.assertRaises(NotBranchError, TrunkBranchingScheme().unprefix, "blie/bloe/bla")
+
+    def test_unprefix_unknown(self):
+        self.assertRaises(NotBranchError, TrunkBranchingScheme().unprefix, "aa")
+
+    def test_unprefix_slash_branch(self):
+        self.assertEqual(TrunkBranchingScheme().unprefix("/trunk"), ("trunk", ""))
+
+    def test_unprefix_nested_branch_sub(self):
+        self.assertEqual(TrunkBranchingScheme().unprefix("branches/ver1/foo"), ("branches/ver1", "foo"))
+
+    def test_unprefix_nested_tag_sub(self):
+        self.assertEqual(TrunkBranchingScheme().unprefix("tags/ver1"), ("tags/ver1", ""))
+
+    def test_unprefix_doubleslash_branch(self):
+        self.assertEqual(TrunkBranchingScheme().unprefix("//trunk/foo"), ("trunk", "foo"))
+
+    def test_unprefix_slash_tag(self):
+        self.assertEqual(TrunkBranchingScheme().unprefix("/tags/ver2/foo/bar"), ("tags/ver2", "foo/bar"))
 
     def test_unprefix_level(self):
-        scheme = TrunkBranchingScheme(1)
-        self.assertRaises(NotBranchError, scheme.unprefix, "trunk")
-        self.assertRaises(NotBranchError, scheme.unprefix, "/branches/foo")
-        self.assertRaises(NotBranchError, scheme.unprefix, "branches/ver1/foo")
-        self.assertEqual(scheme.unprefix("/foo/trunk"), ("foo/trunk", ""))
-        self.assertEqual(scheme.unprefix("data/tags/ver1"), ("data/tags/ver1", ""))
-
-    def test_guess(self):
+        self.assertRaises(NotBranchError, TrunkBranchingScheme(1).unprefix, "trunk")
+
+    def test_unprefix_level_wrong_level(self):
+        self.assertRaises(NotBranchError, TrunkBranchingScheme(1).unprefix, "/branches/foo")
+
+    def test_unprefix_level_wrong_level_nested(self):
+        self.assertRaises(NotBranchError, TrunkBranchingScheme(1).unprefix, "branches/ver1/foo")
+
+    def test_unprefix_level_correct_branch(self):
+        self.assertEqual(TrunkBranchingScheme(1).unprefix("/foo/trunk"), ("foo/trunk", ""))
+
+    def test_unprefix_level_correct_nested(self):
+        self.assertEqual(TrunkBranchingScheme(1).unprefix("data/tags/ver1"), ("data/tags/ver1", ""))
+
+    def test_guess_trunk_zero(self):
         scheme = BranchingScheme.guess_scheme("trunk") 
         self.assertIsInstance(scheme, TrunkBranchingScheme)
         self.assertEqual(0, scheme.level)
+
+    def test_guess_trunk_branch_sub(self):
         scheme = BranchingScheme.guess_scheme("branches/foo/bar")
         self.assertIsInstance(scheme, TrunkBranchingScheme)
         self.assertEqual(0, scheme.level)
+
+    def test_guess_trunk_level(self):
         scheme = BranchingScheme.guess_scheme("test/branches/foo/bar")
         self.assertIsInstance(scheme, TrunkBranchingScheme)
         self.assertEqual(1, scheme.level)
+
+    def test_guess_trunk_level_sub(self):
         scheme = BranchingScheme.guess_scheme("test/bar/branches/foo/bar")
         self.assertIsInstance(scheme, TrunkBranchingScheme)
         self.assertEqual(2, scheme.level)
+
+    def test_guess_level_detection(self):
         scheme = BranchingScheme.guess_scheme("branches/trunk")
         self.assertIsInstance(scheme, TrunkBranchingScheme)
         self.assertEqual(0, scheme.level)




More information about the bazaar-commits mailing list