~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_merge.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2008-03-04 11:39:36 UTC
  • mfrom: (3144.5.5 bzr.ab.integration)
  • Revision ID: pqm@pqm.ubuntu.com-20080304113936-4wrordr8lrxhvfdl
Merge with bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
600
600
                          ('conflicted-a', 'd\n'),
601
601
                          ('conflicted-b', 'e\n'),
602
602
                         ], list(plan))
 
603
 
 
604
 
 
605
class TestMergeImplementation(object):
 
606
 
 
607
    def do_merge(self, target_tree, source_tree, **kwargs):
 
608
        merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
 
609
            target_tree, source_tree.last_revision(),
 
610
            other_branch=source_tree.branch)
 
611
        merger.merge_type=self.merge_type
 
612
        for name, value in kwargs.items():
 
613
            setattr(merger, name, value)
 
614
        merger.do_merge()
 
615
 
 
616
    def test_merge_specific_file(self):
 
617
        this_tree = self.make_branch_and_tree('this')
 
618
        this_tree.lock_write()
 
619
        self.addCleanup(this_tree.unlock)
 
620
        self.build_tree_contents([
 
621
            ('this/file1', 'a\nb\n'),
 
622
            ('this/file2', 'a\nb\n')
 
623
        ])
 
624
        this_tree.add(['file1', 'file2'])
 
625
        this_tree.commit('Added files')
 
626
        other_tree = this_tree.bzrdir.sprout('other').open_workingtree()
 
627
        self.build_tree_contents([
 
628
            ('other/file1', 'a\nb\nc\n'),
 
629
            ('other/file2', 'a\nb\nc\n')
 
630
        ])
 
631
        other_tree.commit('modified both')
 
632
        self.build_tree_contents([
 
633
            ('this/file1', 'd\na\nb\n'),
 
634
            ('this/file2', 'd\na\nb\n')
 
635
        ])
 
636
        this_tree.commit('modified both')
 
637
        self.do_merge(this_tree, other_tree, interesting_files=['file1'])
 
638
        self.assertFileEqual('d\na\nb\nc\n', 'this/file1')
 
639
        self.assertFileEqual('d\na\nb\n', 'this/file2')
 
640
 
 
641
 
 
642
class TestMerge3Merge(TestCaseWithTransport, TestMergeImplementation):
 
643
 
 
644
    merge_type = _mod_merge.Merge3Merger
 
645
 
 
646
 
 
647
class TestWeaveMerge(TestCaseWithTransport, TestMergeImplementation):
 
648
 
 
649
    merge_type = _mod_merge.WeaveMerger
 
650
 
 
651
 
 
652
class TestLCAMerge(TestCaseWithTransport, TestMergeImplementation):
 
653
 
 
654
    merge_type = _mod_merge.LCAMerger