40
40
ExistingPendingDeletion, ImmortalLimbo,
41
41
ImmortalPendingDeletion, LockError)
42
42
from bzrlib.osutils import file_kind, pathjoin
43
from bzrlib.merge import Merge3Merger
43
from bzrlib.merge import Merge3Merger, Merger
44
44
from bzrlib.tests import (
45
45
CaseInsensitiveFilesystemFeature,
2468
2468
preview.unversion_file(preview.trans_id_tree_path('removed-file'))
2469
2469
self.assertEqual(set(['new-file', 'removed-file', 'existing-file']),
2470
2470
set(tree.extras()))
2472
def test_merge_into_preview(self):
2473
work_tree = self.make_branch_and_tree('tree')
2474
self.build_tree_contents([('tree/file','b\n')])
2475
work_tree.add('file', 'file-id')
2476
work_tree.commit('first commit')
2477
child_tree = work_tree.bzrdir.sprout('child').open_workingtree()
2478
self.build_tree_contents([('child/file','b\nc\n')])
2479
child_tree.commit('child commit')
2480
child_tree.lock_write()
2481
self.addCleanup(child_tree.unlock)
2482
work_tree.lock_write()
2483
self.addCleanup(work_tree.unlock)
2484
preview = TransformPreview(work_tree)
2485
self.addCleanup(preview.finalize)
2486
preview_tree = preview.get_preview_tree()
2487
file_trans_id = preview.trans_id_file_id('file-id')
2488
preview.delete_contents(file_trans_id)
2489
preview.create_file('a\nb\n', file_trans_id)
2490
pb = progress.DummyProgress()
2491
merger = Merger.from_revision_ids(pb, preview_tree,
2492
child_tree.branch.last_revision(),
2493
other_branch=child_tree.branch,
2494
tree_branch=work_tree.branch)
2495
merger.merge_type = Merge3Merger
2496
tt = merger.make_merger().make_preview_transform()
2497
self.addCleanup(tt.finalize)
2498
final_tree = tt.get_preview_tree()
2499
self.assertEqual('a\nb\nc\n', final_tree.get_file_text('file-id'))