/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/selftest/test_merge_core.py

[merge] robertc's integration, updated tests to check for retcode=3

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
from bzrlib import changeset
15
15
from bzrlib.merge_core import (ApplyMerge3, make_merge_changeset,
16
16
                               BackupBeforeChange, ExecFlagMerge, WeaveMerge)
17
 
from bzrlib.changeset import Inventory, apply_changeset, invert_dict
18
 
from bzrlib.changeset import get_contents, ReplaceContents
 
17
from bzrlib.changeset import Inventory, apply_changeset, invert_dict, \
 
18
    get_contents, ReplaceContents, ChangeExecFlag
19
19
from bzrlib.clone import copy_branch
20
20
from bzrlib.merge import merge
21
21
 
626
626
        self.assert_(os.path.lexists('a/file'))
627
627
        self.assert_(os.path.lexists('a/file.moved'))
628
628
        self.assertEqual(a.working_tree().pending_merges(), [b.last_revision()])
 
629
 
 
630
    def test_merge_deleted_conflicts(self):
 
631
        os.mkdir('a')
 
632
        a = Branch.initialize('a')
 
633
        file('a/file', 'wb').write('contents\n')
 
634
        a.add('file')
 
635
        a.working_tree().commit('a_revision', allow_pointless=False)
 
636
        del a
 
637
        self.run_bzr('branch', 'a', 'b')
 
638
        a = Branch.open('a')
 
639
        os.remove('a/file')
 
640
        a.working_tree().commit('removed file', allow_pointless=False)
 
641
        file('b/file', 'wb').write('changed contents\n')
 
642
        b = Branch.open('b')
 
643
        b.working_tree().commit('changed file', allow_pointless=False)
 
644
        merge(['a', -1], ['a', 1], this_dir='b')
 
645
        self.failIf(os.path.lexists('b/file'))
 
646
 
 
647
    def test_merge_metadata_vs_deletion(self):
 
648
        """Conflict deletion vs metadata change"""
 
649
        os.mkdir('a')
 
650
        a = Branch.initialize('a')
 
651
        file('a/file', 'wb').write('contents\n')
 
652
        a.add('file')
 
653
        a_wt = a.working_tree()
 
654
        a_wt.commit('r0')
 
655
        copy_branch(a, 'b')
 
656
        b = Branch.open('b')
 
657
        b_wt = b.working_tree()
 
658
        os.chmod('b/file', 0755)
 
659
        os.remove('a/file')
 
660
        a_wt.commit('removed a')
 
661
        self.assertEqual(a.revno(), 2)
 
662
        self.assertFalse(os.path.exists('a/file'))
 
663
        b_wt.commit('exec a')
 
664
        merge(['b', -1], ['b', 0], this_dir='a')
 
665
        self.assert_(os.path.exists('a/file'))
 
666