Rev 3531: switch over test_merge to using the new BranchBuilder api. in http://bzr.arbash-meinel.com/branches/bzr/1.7-dev/merge_lca_multi
John Arbash Meinel
john at arbash-meinel.com
Tue Jul 22 21:18:41 BST 2008
At http://bzr.arbash-meinel.com/branches/bzr/1.7-dev/merge_lca_multi
------------------------------------------------------------
revno: 3531
revision-id: john at arbash-meinel.com-20080722201736-47jhd8ij30jhgw7j
parent: john at arbash-meinel.com-20080722195253-ic5o3tbuc97e2uoc
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: merge_lca_multi
timestamp: Tue 2008-07-22 15:17:36 -0500
message:
switch over test_merge to using the new BranchBuilder api.
-------------- next part --------------
=== modified file 'bzrlib/tests/test_merge.py'
--- a/bzrlib/tests/test_merge.py 2008-07-22 19:52:53 +0000
+++ b/bzrlib/tests/test_merge.py 2008-07-22 20:17:36 +0000
@@ -21,6 +21,7 @@
conflicts,
errors,
knit,
+ memorytree,
merge as _mod_merge,
option,
progress,
@@ -1113,19 +1114,14 @@
|\\
B C
- :return: A MemoryTree which is already write-locked, and an unlock has
- been queued up.
+ :return: A BranchBuilder
"""
- tree = self.make_branch_and_memory_tree('tree')
- tree.lock_write()
- self.addCleanup(tree.unlock)
- tree.add('.')
- tree.commit('A', rev_id='A-id')
- tree.commit('C', rev_id='C-id')
- tree.set_parent_ids(['A-id'])
- tree.branch.set_last_revision_info(1, 'A-id')
- tree.commit('B', rev_id='B-id')
- return tree
+ builder = self.make_branch_builder('path')
+ builder.build_snapshot('A-id', None,
+ [('add', ('', None, 'directory', None))])
+ builder.build_snapshot('C-id', ['A-id'], [])
+ builder.build_snapshot('B-id', ['A-id'], [])
+ return builder
def setup_criss_cross_graph(self):
"""Create a 5-node graph with a criss-cross.
@@ -1134,30 +1130,29 @@
B C
|X|
D E
- :return: A write locked Memory Tree
+ :return: A BranchBuilder
"""
- tree = self.setup_simple_graph()
- tree.branch.set_last_revision_info(2, 'C-id')
- tree.set_parent_ids(['C-id', 'B-id'])
- tree.commit('E', rev_id='E-id')
- tree.set_parent_ids(['B-id', 'C-id'])
- tree.branch.set_last_revision_info(2, 'B-id')
- tree.commit('D', rev_id='D-id')
- return tree
+ builder = self.setup_simple_graph()
+ builder.build_snapshot('E-id', ['C-id', 'B-id'], [])
+ builder.build_snapshot('D-id', ['B-id', 'C-id'], [])
+ return builder
+
+ def make_merger(self, builder, other_revision_id):
+ """Make a Merger object from a branch builder"""
+ mem_tree = memorytree.MemoryTree.create_on_branch(builder.get_branch())
+ mem_tree.lock_write()
+ self.addCleanup(mem_tree.unlock)
+ return _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
+ mem_tree, other_revision_id)
def test_find_base(self):
- tree = self.setup_simple_graph()
- merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
- tree, 'C-id')
+ merger = self.make_merger(self.setup_simple_graph(), 'C-id')
self.assertEqual('A-id', merger.base_rev_id)
self.assertFalse(merger._is_criss_cross)
self.assertIs(None, merger._lca_trees)
-
def test_find_base_criss_cross(self):
- tree = self.setup_criss_cross_graph()
- merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
- tree, 'E-id')
+ merger = self.make_merger(self.setup_criss_cross_graph(), 'E-id')
self.assertEqual('A-id', merger.base_rev_id)
self.assertTrue(merger._is_criss_cross)
self.assertEqual(['B-id', 'C-id'], sorted(merger._lca_trees.keys()))
@@ -1166,18 +1161,14 @@
class LCATreesMerger(LoggingMerger):
supports_lca_trees = True
- tree = self.setup_simple_graph()
- merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
- tree, 'C-id')
+ merger = self.make_merger(self.setup_simple_graph(), 'C-id')
merger.merge_type = LCATreesMerger
merge_obj = merger.make_merger()
self.assertIsInstance(merge_obj, LCATreesMerger)
self.assertFalse('lca_trees' in merge_obj.kwargs)
def test_criss_cross_passed_to_merge_type(self):
- tree = self.setup_criss_cross_graph()
- merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
- tree, 'E-id')
+ merger = self.make_merger(self.setup_criss_cross_graph(), 'E-id')
merger.merge_type = _mod_merge.Merge3Merger
merge_obj = merger.make_merger()
self.assertEqual(['B-id', 'C-id'], sorted(merge_obj._lca_trees.keys()))
@@ -1187,9 +1178,7 @@
# We intentionally do not define supports_lca_trees
pass
- tree = self.setup_criss_cross_graph()
- merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
- tree, 'E-id')
+ merger = self.make_merger(self.setup_criss_cross_graph(), 'E-id')
merger.merge_type = NoLCATreesMerger
merge_obj = merger.make_merger()
self.assertIsInstance(merge_obj, NoLCATreesMerger)
@@ -1199,49 +1188,35 @@
class UnsupportedLCATreesMerger(LoggingMerger):
supports_lca_trees = False
- tree = self.setup_criss_cross_graph()
- merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
- tree, 'E-id')
+ merger = self.make_merger(self.setup_criss_cross_graph(), 'E-id')
merger.merge_type = UnsupportedLCATreesMerger
merge_obj = merger.make_merger()
self.assertIsInstance(merge_obj, UnsupportedLCATreesMerger)
self.assertFalse('lca_trees' in merge_obj.kwargs)
def test__entries_lca_simple(self):
- tree = self.make_branch_and_memory_tree('tree')
- tree.lock_write()
- self.addCleanup(tree.unlock)
- tree.add('.')
- tree.add(['a'], ['a-id'], ['file'])
- tree.put_file_bytes_non_atomic('a-id', 'a\nb\nc\n')
- tree.commit('A', rev_id='A-id')
- tree.put_file_bytes_non_atomic('a-id', 'a\nb\nC\nc\n')
- tree.commit('C', rev_id='C-id')
- tree.branch.set_last_revision_info(1, 'A-id')
- tree.set_parent_ids(['A-id'])
- tree.put_file_bytes_non_atomic('a-id', 'a\nB\nb\nc\n')
- tree.commit('B', rev_id='B-id')
- tree.set_parent_ids(['B-id', 'C-id'])
- tree.put_file_bytes_non_atomic('a-id', 'a\nB\nb\nC\nc\n')
- tree.commit('D', rev_id='D-id')
- tree.branch.set_last_revision_info(2, 'C-id')
- tree.set_parent_ids(['C-id', 'B-id'])
- tree.put_file_bytes_non_atomic('a-id', 'a\nB\nb\nC\nc\nE\n')
- tree.commit('E', rev_id='E-id')
- tree.branch.set_last_revision_info(2, 'D-id')
- tree.set_parent_ids(['D-id'])
-
- merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
- tree, 'E-id')
+ builder = self.make_branch_builder('tree')
+ builder.build_snapshot('A-id', None,
+ [('add', (u'', 'a-root-id', 'directory', None)),
+ ('add', (u'a', 'a-id', 'file', 'a\nb\nc\n'))])
+ builder.build_snapshot('C-id', ['A-id'],
+ [('modify', ('a-id', 'a\nb\nC\nc\n'))])
+ builder.build_snapshot('B-id', ['A-id'],
+ [('modify', ('a-id', 'a\nB\nb\nc\n'))])
+ builder.build_snapshot('E-id', ['C-id', 'B-id'],
+ [('modify', ('a-id', 'a\nB\nb\nC\nc\nE\n'))])
+ builder.build_snapshot('D-id', ['B-id', 'C-id'],
+ [('modify', ('a-id', 'a\nB\nb\nC\nc\n'))])
+ merger = self.make_merger(builder, 'E-id')
merger.merge_type = _mod_merge.Merge3Merger
merge_obj = merger.make_merger()
entries = list(merge_obj._entries_lca())
- root_id = tree.path2id('')
self.assertEqual(['B-id', 'C-id'], sorted(merge_obj._lca_trees.keys()))
# (file_id, changed, parents, names, executable)
# BASE, lca1, lca2, OTHER, THIS
+ root_id = 'a-root-id'
self.assertEqual([(root_id, True,
((None, [None, None]), None, None),
((u'', [u'', u'']), u'', u''),
More information about the bazaar-commits
mailing list