29
29
from bzrlib.branch import Branch
30
30
from bzrlib.conflicts import ConflictList, TextConflict
31
31
from bzrlib.errors import UnrelatedBranches, NoCommits, BzrCommandError
32
from bzrlib.merge import transform_tree, merge_inner, PlanMerge
32
from bzrlib.merge import transform_tree, merge_inner, _PlanMerge
33
33
from bzrlib.osutils import pathjoin, file_kind
34
34
from bzrlib.revision import common_ancestor
35
35
from bzrlib.tests import TestCaseWithTransport, TestCaseWithMemoryTransport
309
309
self.add_version('A', [], 'abc')
310
310
self.add_version('B', ['A'], 'acehg')
311
311
self.add_version('C', ['A'], 'fabg')
312
return PlanMerge('B', 'C', self.plan_merge_vf)
312
return _PlanMerge('B', 'C', self.plan_merge_vf)
314
314
def setup_plan_merge_uncommitted(self):
315
315
self.add_version('A', [], 'abc')
316
316
self.add_uncommitted_version('B:', ['A'], 'acehg')
317
317
self.add_uncommitted_version('C:', ['A'], 'fabg')
318
return PlanMerge('B:', 'C:', self.plan_merge_vf)
318
return _PlanMerge('B:', 'C:', self.plan_merge_vf)
320
320
def test_unique_lines(self):
321
321
plan = self.setup_plan_merge()
333
333
self.add_version('B', ['A'], 'abcde')
334
334
self.add_version('C', ['A'], 'abcefg')
335
335
self.add_version('D', ['A', 'B', 'C'], 'abcdegh')
336
my_plan = PlanMerge('B', 'D', self.plan_merge_vf)
336
my_plan = _PlanMerge('B', 'D', self.plan_merge_vf)
337
337
self.assertEqual(set([5, 6]), my_plan._find_new('D'))
338
338
self.assertEqual(set(), my_plan._find_new('A'))
340
340
def test_find_new_no_ancestors(self):
341
341
self.add_version('A', [], 'abc')
342
342
self.add_version('B', [], 'xyz')
343
my_plan = PlanMerge('A', 'B', self.vf)
343
my_plan = _PlanMerge('A', 'B', self.vf)
344
344
self.assertEqual(set([0, 1, 2]), my_plan._find_new('A'))
346
346
def test_plan_merge(self):
347
my_plan = self.setup_plan_merge()
348
plan = my_plan.plan_merge()
347
self.setup_plan_merge()
348
plan = self.plan_merge_vf.plan_merge('B', 'C')
349
349
self.assertEqual([
350
350
('new-b', 'f\n'),
351
351
('unchanged', 'a\n'),
359
359
def test_plan_merge_uncommitted_files(self):
360
my_plan = self.setup_plan_merge_uncommitted()
361
plan = my_plan.plan_merge()
360
self.setup_plan_merge_uncommitted()
361
plan = self.plan_merge_vf.plan_merge('B:', 'C:')
362
362
self.assertEqual([
363
363
('new-b', 'f\n'),
364
364
('unchanged', 'a\n'),