/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: Martin Pool
  • Date: 2008-02-06 00:41:04 UTC
  • mfrom: (3215 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3219.
  • Revision ID: mbp@sourcefrog.net-20080206004104-mxtn32habuhjq6b8
Merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
    merge as _mod_merge,
25
25
    option,
26
26
    progress,
 
27
    transform,
27
28
    versionedfile,
28
29
    )
29
30
from bzrlib.branch import Branch
351
352
        merger.merge_type = _mod_merge.Merge3Merger
352
353
        merger.do_merge()
353
354
 
 
355
    def test_make_merger(self):
 
356
        this_tree = self.make_branch_and_tree('this')
 
357
        this_tree.commit('rev1', rev_id='rev1')
 
358
        other_tree = this_tree.bzrdir.sprout('other').open_workingtree()
 
359
        this_tree.commit('rev2', rev_id='rev2a')
 
360
        other_tree.commit('rev2', rev_id='rev2b')
 
361
        this_tree.lock_write()
 
362
        self.addCleanup(this_tree.unlock)
 
363
        merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress,
 
364
            this_tree, 'rev2b', other_branch=other_tree.branch)
 
365
        merger.merge_type = _mod_merge.Merge3Merger
 
366
        tree_merger = merger.make_merger()
 
367
        self.assertIs(_mod_merge.Merge3Merger, tree_merger.__class__)
 
368
        self.assertEqual('rev2b', tree_merger.other_tree.get_revision_id())
 
369
        self.assertEqual('rev1', tree_merger.base_tree.get_revision_id())
 
370
 
 
371
    def test_make_preview_transform(self):
 
372
        this_tree = self.make_branch_and_tree('this')
 
373
        self.build_tree_contents([('this/file', '1\n')])
 
374
        this_tree.add('file', 'file-id')
 
375
        this_tree.commit('rev1', rev_id='rev1')
 
376
        other_tree = this_tree.bzrdir.sprout('other').open_workingtree()
 
377
        self.build_tree_contents([('this/file', '1\n2a\n')])
 
378
        this_tree.commit('rev2', rev_id='rev2a')
 
379
        self.build_tree_contents([('other/file', '2b\n1\n')])
 
380
        other_tree.commit('rev2', rev_id='rev2b')
 
381
        this_tree.lock_write()
 
382
        self.addCleanup(this_tree.unlock)
 
383
        merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
 
384
            this_tree, 'rev2b', other_branch=other_tree.branch)
 
385
        merger.merge_type = _mod_merge.Merge3Merger
 
386
        tree_merger = merger.make_merger()
 
387
        tt = tree_merger.make_preview_transform()
 
388
        self.addCleanup(tt.finalize)
 
389
        preview_tree = tt.get_preview_tree()
 
390
        tree_file = this_tree.get_file('file-id')
 
391
        try:
 
392
            self.assertEqual('1\n2a\n', tree_file.read())
 
393
        finally:
 
394
            tree_file.close()
 
395
        preview_file = preview_tree.get_file('file-id')
 
396
        try:
 
397
            self.assertEqual('2b\n1\n2a\n', preview_file.read())
 
398
        finally:
 
399
            preview_file.close()
 
400
 
 
401
    def test_do_merge(self):
 
402
        this_tree = self.make_branch_and_tree('this')
 
403
        self.build_tree_contents([('this/file', '1\n')])
 
404
        this_tree.add('file', 'file-id')
 
405
        this_tree.commit('rev1', rev_id='rev1')
 
406
        other_tree = this_tree.bzrdir.sprout('other').open_workingtree()
 
407
        self.build_tree_contents([('this/file', '1\n2a\n')])
 
408
        this_tree.commit('rev2', rev_id='rev2a')
 
409
        self.build_tree_contents([('other/file', '2b\n1\n')])
 
410
        other_tree.commit('rev2', rev_id='rev2b')
 
411
        this_tree.lock_write()
 
412
        self.addCleanup(this_tree.unlock)
 
413
        merger = _mod_merge.Merger.from_revision_ids(progress.DummyProgress(),
 
414
            this_tree, 'rev2b', other_branch=other_tree.branch)
 
415
        merger.merge_type = _mod_merge.Merge3Merger
 
416
        tree_merger = merger.make_merger()
 
417
        tt = tree_merger.do_merge()
 
418
        tree_file = this_tree.get_file('file-id')
 
419
        try:
 
420
            self.assertEqual('2b\n1\n2a\n', tree_file.read())
 
421
        finally:
 
422
            tree_file.close()
 
423
 
354
424
 
355
425
class TestPlanMerge(TestCaseWithMemoryTransport):
356
426