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