/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

[merge] bzr.dev 2294

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
import os
18
18
from StringIO import StringIO
19
19
 
20
 
from bzrlib import conflicts
 
20
from bzrlib import (
 
21
    conflicts,
 
22
    merge as _mod_merge,
 
23
    option,
 
24
    )
21
25
from bzrlib.branch import Branch
22
26
from bzrlib.builtins import merge
23
27
from bzrlib.conflicts import ConflictList, TextConflict
24
28
from bzrlib.errors import UnrelatedBranches, NoCommits, BzrCommandError
25
29
from bzrlib.merge import transform_tree, merge_inner
26
 
from bzrlib.osutils import pathjoin
 
30
from bzrlib.osutils import pathjoin, file_kind
27
31
from bzrlib.revision import common_ancestor
28
32
from bzrlib.tests import TestCaseWithTransport
29
33
from bzrlib.trace import (enable_test_log, disable_test_log)
186
190
        other_tree = tree_a.basis_tree()
187
191
        os.unlink('tree_b/file')
188
192
        merge_inner(tree_b.branch, other_tree, base_tree, this_tree=tree_b)
 
193
 
 
194
    def test_merge_kind_change(self):
 
195
        tree_a = self.make_branch_and_tree('tree_a')
 
196
        self.build_tree_contents([('tree_a/file', 'content_1')])
 
197
        tree_a.add('file', 'file-id')
 
198
        tree_a.commit('added file')
 
199
        tree_b = tree_a.bzrdir.sprout('tree_b').open_workingtree()
 
200
        os.unlink('tree_a/file')
 
201
        self.build_tree(['tree_a/file/'])
 
202
        tree_a.commit('changed file to directory')
 
203
        tree_b.merge_from_branch(tree_a.branch)
 
204
        self.assertEqual('directory', file_kind('tree_b/file'))
 
205
        tree_b.revert([])
 
206
        self.assertEqual('file', file_kind('tree_b/file'))
 
207
        self.build_tree_contents([('tree_b/file', 'content_2')])
 
208
        tree_b.commit('content change')
 
209
        tree_b.merge_from_branch(tree_a.branch)
 
210
        self.assertEqual(tree_b.conflicts(),
 
211
                         [conflicts.ContentsConflict('file',
 
212
                          file_id='file-id')])
 
213
    
 
214
    def test_merge_type_registry(self):
 
215
        merge_type_option = option.Option.OPTIONS['merge-type']
 
216
        self.assertFalse('merge4' in [x[0] for x in 
 
217
                        merge_type_option.iter_switches()])
 
218
        registry = _mod_merge.get_merge_type_registry()
 
219
        registry.register_lazy('merge4', 'bzrlib.merge', 'Merge4Merger',
 
220
                               'time-travelling merge')
 
221
        self.assertTrue('merge4' in [x[0] for x in 
 
222
                        merge_type_option.iter_switches()])
 
223
        registry.remove('merge4')
 
224
        self.assertFalse('merge4' in [x[0] for x in 
 
225
                        merge_type_option.iter_switches()])