/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_merge.py

  • Committer: Aaron Bentley
  • Date: 2007-12-28 20:10:14 UTC
  • mto: (3144.5.2 specific-file)
  • mto: This revision was merged to the branch mainline in revision 3156.
  • Revision ID: abentley@panoramicfeedback.com-20071228201014-hd5g7gsz1ds1mmr4
Implement LCA merge, with problematic conflict markers

Show diffs side-by-side

added added

removed removed

Lines of Context:
445
445
        self.assertEqual(subtracted_plan,
446
446
            list(_PlanMerge._subtract_plans(old_plan, new_plan)))
447
447
 
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')
 
453
 
 
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'),
458
461
                          ('new-a', 'd\n')
459
462
                         ], list(plan))
 
463
 
 
464
    def test_plan_lca_merge(self):
 
465
        self.setup_plan_merge()
 
466
        plan = self.plan_merge_vf.plan_lca_merge('B', 'C')
 
467
        self.assertEqual([
 
468
                          ('new-b', 'f\n'),
 
469
                          ('unchanged', 'a\n'),
 
470
                          ('killed-b', 'c\n'),
 
471
                          ('new-a', 'e\n'),
 
472
                          ('new-a', 'h\n'),
 
473
                          ('killed-a', 'b\n'),
 
474
                          ('unchanged', 'g\n')],
 
475
                         list(plan))
 
476
 
 
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:')
 
480
        self.assertEqual([
 
481
                          ('new-b', 'f\n'),
 
482
                          ('unchanged', 'a\n'),
 
483
                          ('killed-b', 'c\n'),
 
484
                          ('new-a', 'e\n'),
 
485
                          ('new-a', 'h\n'),
 
486
                          ('killed-a', 'b\n'),
 
487
                          ('unchanged', 'g\n')],
 
488
                         list(plan))
 
489
 
 
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'),
 
494
                          ('new-b', 'f\n'),
 
495
                          ('unchanged', 'b\n'),
 
496
                          ('killed-b', 'c\n'),
 
497
                          ('new-a', 'd\n')
 
498
                         ], list(plan))
 
499
 
 
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'),
 
512
                          ('new-a', 'd\n'),
 
513
                          ('killed-b', 'd\n'),
 
514
                          ('new-b', 'e\n'),
 
515
                          ('killed-a', 'e\n'),
 
516
                         ], list(plan))