445
445
self.assertEqual(subtracted_plan,
446
446
list(_PlanMerge._subtract_plans(old_plan, new_plan)))
448
def test_plan_merge_with_base(self):
448
def setup_merge_with_base(self):
449
449
self.add_version('COMMON', [], 'abc')
450
450
self.add_version('THIS', ['COMMON'], 'abcd')
451
451
self.add_version('BASE', ['COMMON'], 'eabc')
452
452
self.add_version('OTHER', ['BASE'], 'eafb')
454
def test_plan_merge_with_base(self):
455
self.setup_merge_with_base()
453
456
plan = self.plan_merge_vf.plan_merge('THIS', 'OTHER', 'BASE')
454
457
self.assertEqual([('unchanged', 'a\n'),
455
458
('new-b', 'f\n'),
457
460
('killed-b', 'c\n'),
464
def test_plan_lca_merge(self):
465
self.setup_plan_merge()
466
plan = self.plan_merge_vf.plan_lca_merge('B', 'C')
469
('unchanged', 'a\n'),
474
('unchanged', 'g\n')],
477
def test_plan_lca_merge_uncommitted_files(self):
478
self.setup_plan_merge_uncommitted()
479
plan = self.plan_merge_vf.plan_lca_merge('B:', 'C:')
482
('unchanged', 'a\n'),
487
('unchanged', 'g\n')],
490
def test_plan_lca_merge_with_base(self):
491
self.setup_merge_with_base()
492
plan = self.plan_merge_vf.plan_lca_merge('THIS', 'OTHER', 'BASE')
493
self.assertEqual([('unchanged', 'a\n'),
495
('unchanged', 'b\n'),
500
def test_plan_lca_merge_with_criss_cross(self):
501
self.add_version('ROOT', [], 'abc')
502
# each side makes a change
503
self.add_version('REV1', ['ROOT'], 'abcd')
504
self.add_version('REV2', ['ROOT'], 'abce')
505
# both sides merge, discarding others' changes
506
self.add_version('LCA1', ['REV1', 'REV2'], 'abcd')
507
self.add_version('LCA2', ['REV1', 'REV2'], 'abce')
508
plan = self.plan_merge_vf.plan_lca_merge('LCA1', 'LCA2')
509
self.assertEqual([('unchanged', 'a\n'),
510
('unchanged', 'b\n'),
511
('unchanged', 'c\n'),