~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/intertree_implementations/test_compare.py

  • Committer: John Arbash Meinel
  • Date: 2007-06-28 23:18:09 UTC
  • mfrom: (2562 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2566.
  • Revision ID: john@arbash-meinel.com-20070628231809-pqbt7puoqj8bl07b
[merge] bzr.dev 2562

Show diffs side-by-side

added added

removed removed

Lines of Context:
867
867
            specific_files=specific_files, require_versioned=False,
868
868
            want_unversioned=True))
869
869
 
 
870
    def test_similar_filenames(self):
 
871
        """Test when we have a few files with similar names."""
 
872
        tree1 = self.make_branch_and_tree('tree1')
 
873
        tree2 = self.make_branch_and_tree('tree2')
 
874
        tree2.set_root_id(tree1.get_root_id())
 
875
 
 
876
        # The trees are actually identical, but they happen to contain
 
877
        # similarly named files.
 
878
        self.build_tree(['tree1/a/',
 
879
                         'tree1/a/b/',
 
880
                         'tree1/a/b/c/',
 
881
                         'tree1/a/b/c/d/',
 
882
                         'tree1/a-c/',
 
883
                         'tree1/a-c/e/',
 
884
                         'tree2/a/',
 
885
                         'tree2/a/b/',
 
886
                         'tree2/a/b/c/',
 
887
                         'tree2/a/b/c/d/',
 
888
                         'tree2/a-c/',
 
889
                         'tree2/a-c/e/',
 
890
                        ])
 
891
        tree1.add(['a', 'a/b', 'a/b/c', 'a/b/c/d', 'a-c', 'a-c/e'],
 
892
                  ['a-id', 'b-id', 'c-id', 'd-id', 'a-c-id', 'e-id'])
 
893
        tree2.add(['a', 'a/b', 'a/b/c', 'a/b/c/d', 'a-c', 'a-c/e'],
 
894
                  ['a-id', 'b-id', 'c-id', 'd-id', 'a-c-id', 'e-id'])
 
895
 
 
896
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
897
 
 
898
        self.assertEqual([], self.do_iter_changes(tree1, tree2,
 
899
                                                  want_unversioned=True))
 
900
        expected = sorted([
 
901
            self.unchanged(tree2, tree2.get_root_id()),
 
902
            self.unchanged(tree2, 'a-id'),
 
903
            self.unchanged(tree2, 'b-id'),
 
904
            self.unchanged(tree2, 'c-id'),
 
905
            self.unchanged(tree2, 'd-id'),
 
906
            self.unchanged(tree2, 'a-c-id'),
 
907
            self.unchanged(tree2, 'e-id'),
 
908
            ])
 
909
        self.assertEqual(expected,
 
910
                         self.do_iter_changes(tree1, tree2,
 
911
                                              want_unversioned=True,
 
912
                                              include_unchanged=True))
 
913
 
 
914
 
870
915
    def test_unversioned_subtree_only_emits_root(self):
871
916
        tree1 = self.make_branch_and_tree('tree1')
872
917
        tree2 = self.make_to_branch_and_tree('tree2')
1318
1363
        self.assertEqual(expected,
1319
1364
                         self.do_iter_changes(tree1, tree2,
1320
1365
                                              want_unversioned=False))
 
1366
 
 
1367
    def test_renamed_and_added(self):
 
1368
        """Test when we have renamed a file, and put another in its place."""
 
1369
        tree1 = self.make_branch_and_tree('tree1')
 
1370
        tree2 = self.make_to_branch_and_tree('tree2')
 
1371
        root_id = tree1.get_root_id()
 
1372
        tree2.set_root_id(root_id)
 
1373
 
 
1374
        # The final changes are:
 
1375
        # bzr add b c
 
1376
        # bzr mv b a
 
1377
        # bzr mv c d
 
1378
        # bzr add b c
 
1379
 
 
1380
        self.build_tree_contents([
 
1381
            ('tree1/b', 'b contents\n'),
 
1382
            ('tree1/c', 'c contents\n'),
 
1383
            ('tree2/a', 'b contents\n'),
 
1384
            ('tree2/b', 'new b contents\n'),
 
1385
            ('tree2/c', 'new c contents\n'),
 
1386
            ('tree2/d', 'c contents\n'),
 
1387
            ])
 
1388
        tree1.add(['b', 'c'], ['b1-id', 'c1-id'])
 
1389
        tree2.add(['a', 'b', 'c', 'd'], ['b1-id', 'b2-id', 'c2-id', 'c1-id'])
 
1390
 
 
1391
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
1392
 
 
1393
        expected = sorted([
 
1394
            self.renamed(tree1, tree2, 'b1-id', False),
 
1395
            self.renamed(tree1, tree2, 'c1-id', False),
 
1396
            self.added(tree2, 'b2-id'),
 
1397
            self.added(tree2, 'c2-id'),
 
1398
            ])
 
1399
        self.assertEqual(expected,
 
1400
                         self.do_iter_changes(tree1, tree2,
 
1401
                                              want_unversioned=True))
 
1402
 
 
1403
    def test_renamed_and_unknown(self):
 
1404
        """A file was moved on the filesystem, but not in bzr."""
 
1405
        tree1 = self.make_branch_and_tree('tree1')
 
1406
        tree2 = self.make_to_branch_and_tree('tree2')
 
1407
        root_id = tree1.get_root_id()
 
1408
        tree2.set_root_id(root_id)
 
1409
 
 
1410
        # The final changes are:
 
1411
        # bzr add a b
 
1412
        # mv a a2
 
1413
 
 
1414
        self.build_tree_contents([
 
1415
            ('tree1/a', 'a contents\n'),
 
1416
            ('tree1/b', 'b contents\n'),
 
1417
            ('tree2/a', 'a contents\n'),
 
1418
            ('tree2/b', 'b contents\n'),
 
1419
            ])
 
1420
        tree1.add(['a', 'b'], ['a-id', 'b-id'])
 
1421
        tree2.add(['a', 'b'], ['a-id', 'b-id'])
 
1422
        os.rename('tree2/a', 'tree2/a2')
 
1423
 
 
1424
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
 
1425
 
 
1426
        expected = sorted([
 
1427
            self.missing('a-id', 'a', 'a', tree2.get_root_id(), 'file'),
 
1428
            self.unversioned(tree2, 'a2'),
 
1429
            ])
 
1430
        self.assertEqual(expected,
 
1431
                         self.do_iter_changes(tree1, tree2,
 
1432
                                              want_unversioned=True))