1229
1230
tt.version_file("bar-1", bar_trans_id)
1231
1232
self.failUnlessExists("foo/bar")
1235
self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
1240
changes = wt.changes_from(wt.basis_tree())
1241
self.assertFalse(changes.has_changed(), changes)
1243
def test_file_to_symlink(self):
1244
self.requireFeature(SymlinkFeature)
1245
wt = self.make_branch_and_tree('.')
1246
self.build_tree(['foo'])
1249
tt = TreeTransform(wt)
1250
self.addCleanup(tt.finalize)
1251
foo_trans_id = tt.trans_id_tree_path("foo")
1252
tt.delete_contents(foo_trans_id)
1253
tt.create_symlink("bar", foo_trans_id)
1255
self.failUnlessExists("foo")
1257
self.addCleanup(wt.unlock)
1258
self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
1261
def test_dir_to_file(self):
1262
wt = self.make_branch_and_tree('.')
1263
self.build_tree(['foo/', 'foo/bar'])
1264
wt.add(['foo', 'foo/bar'])
1266
tt = TreeTransform(wt)
1267
self.addCleanup(tt.finalize)
1268
foo_trans_id = tt.trans_id_tree_path("foo")
1269
bar_trans_id = tt.trans_id_tree_path("foo/bar")
1270
tt.delete_contents(foo_trans_id)
1271
tt.delete_versioned(bar_trans_id)
1272
tt.create_file(["aa\n"], foo_trans_id)
1274
self.failUnlessExists("foo")
1276
self.addCleanup(wt.unlock)
1277
self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
1280
def test_dir_to_hardlink(self):
1281
self.requireFeature(HardlinkFeature)
1282
wt = self.make_branch_and_tree('.')
1283
self.build_tree(['foo/', 'foo/bar'])
1284
wt.add(['foo', 'foo/bar'])
1286
tt = TreeTransform(wt)
1287
self.addCleanup(tt.finalize)
1288
foo_trans_id = tt.trans_id_tree_path("foo")
1289
bar_trans_id = tt.trans_id_tree_path("foo/bar")
1290
tt.delete_contents(foo_trans_id)
1291
tt.delete_versioned(bar_trans_id)
1292
self.build_tree(['baz'])
1293
tt.create_hardlink("baz", foo_trans_id)
1295
self.failUnlessExists("foo")
1296
self.failUnlessExists("baz")
1298
self.addCleanup(wt.unlock)
1299
self.assertEqual(wt.inventory.get_file_kind(wt.path2id("foo")),
1234
1303
class TransformGroup(object):
2314
2383
preview.set_executability(True, preview.trans_id_file_id('file-id'))
2315
2384
preview_tree = preview.get_preview_tree()
2316
2385
self.assertEqual(True, preview_tree.is_executable('file-id'))
2387
def test_get_set_parent_ids(self):
2388
revision_tree, preview_tree = self.get_tree_and_preview_tree()
2389
self.assertEqual([], preview_tree.get_parent_ids())
2390
preview_tree.set_parent_ids(['rev-1'])
2391
self.assertEqual(['rev-1'], preview_tree.get_parent_ids())
2393
def test_plan_file_merge(self):
2394
work_a = self.make_branch_and_tree('wta')
2395
self.build_tree_contents([('wta/file', 'a\nb\nc\nd\n')])
2396
work_a.add('file', 'file-id')
2397
base_id = work_a.commit('base version')
2398
tree_b = work_a.bzrdir.sprout('wtb').open_workingtree()
2399
preview = TransformPreview(work_a)
2400
self.addCleanup(preview.finalize)
2401
trans_id = preview.trans_id_file_id('file-id')
2402
preview.delete_contents(trans_id)
2403
preview.create_file('b\nc\nd\ne\n', trans_id)
2404
self.build_tree_contents([('wtb/file', 'a\nc\nd\nf\n')])
2405
tree_a = preview.get_preview_tree()
2406
tree_a.set_parent_ids([base_id])
2408
('killed-a', 'a\n'),
2409
('killed-b', 'b\n'),
2410
('unchanged', 'c\n'),
2411
('unchanged', 'd\n'),
2414
], list(tree_a.plan_file_merge('file-id', tree_b)))
2416
def test_plan_file_merge_revision_tree(self):
2417
work_a = self.make_branch_and_tree('wta')
2418
self.build_tree_contents([('wta/file', 'a\nb\nc\nd\n')])
2419
work_a.add('file', 'file-id')
2420
base_id = work_a.commit('base version')
2421
tree_b = work_a.bzrdir.sprout('wtb').open_workingtree()
2422
preview = TransformPreview(work_a.basis_tree())
2423
self.addCleanup(preview.finalize)
2424
trans_id = preview.trans_id_file_id('file-id')
2425
preview.delete_contents(trans_id)
2426
preview.create_file('b\nc\nd\ne\n', trans_id)
2427
self.build_tree_contents([('wtb/file', 'a\nc\nd\nf\n')])
2428
tree_a = preview.get_preview_tree()
2429
tree_a.set_parent_ids([base_id])
2431
('killed-a', 'a\n'),
2432
('killed-b', 'b\n'),
2433
('unchanged', 'c\n'),
2434
('unchanged', 'd\n'),
2437
], list(tree_a.plan_file_merge('file-id', tree_b)))