/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 breezy/tests/per_intertree/test_compare.py

  • Committer: Jelmer Vernooij
  • Date: 2019-08-11 13:33:45 UTC
  • mfrom: (7379 work)
  • mto: This revision was merged to the branch mainline in revision 7389.
  • Revision ID: jelmer@jelmer.uk-20190811133345-dp9j3c569vxj4l9y
merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
73
73
    def test_compare_empty_trees(self):
74
74
        tree1 = self.make_branch_and_tree('1')
75
75
        tree2 = self.make_to_branch_and_tree('2')
76
 
        tree2.set_root_id(tree1.get_root_id())
 
76
        tree2.set_root_id(tree1.path2id(''))
77
77
        tree1 = self.get_tree_no_parents_no_content(tree1)
78
78
        tree2 = self.get_tree_no_parents_no_content(tree2)
79
79
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
87
87
    def test_empty_to_abc_content(self):
88
88
        tree1 = self.make_branch_and_tree('1')
89
89
        tree2 = self.make_to_branch_and_tree('2')
90
 
        tree2.set_root_id(tree1.get_root_id())
 
90
        tree2.set_root_id(tree1.path2id(''))
91
91
        tree1 = self.get_tree_no_parents_no_content(tree1)
92
92
        tree2 = self.get_tree_no_parents_abc_content(tree2)
93
93
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
108
108
        # the test.
109
109
        tree1 = self.make_branch_and_tree('1')
110
110
        tree2 = self.make_to_branch_and_tree('2')
111
 
        tree2.set_root_id(tree1.get_root_id())
 
111
        tree2.set_root_id(tree1.path2id(''))
112
112
        self.build_tree(['2/a'])
113
113
        tree2.add('a')
114
114
        os.unlink('2/a')
130
130
    def test_abc_content_to_empty(self):
131
131
        tree1 = self.make_branch_and_tree('1')
132
132
        tree2 = self.make_to_branch_and_tree('2')
133
 
        tree2.set_root_id(tree1.get_root_id())
 
133
        tree2.set_root_id(tree1.path2id(''))
134
134
        tree1 = self.get_tree_no_parents_abc_content(tree1)
135
135
        tree2 = self.get_tree_no_parents_no_content(tree2)
136
136
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
147
147
    def test_content_modification(self):
148
148
        tree1 = self.make_branch_and_tree('1')
149
149
        tree2 = self.make_to_branch_and_tree('2')
150
 
        tree2.set_root_id(tree1.get_root_id())
 
150
        tree2.set_root_id(tree1.path2id(''))
151
151
        tree1 = self.get_tree_no_parents_abc_content(tree1)
152
152
        tree2 = self.get_tree_no_parents_abc_content_2(tree2)
153
153
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
164
164
    def test_meta_modification(self):
165
165
        tree1 = self.make_branch_and_tree('1')
166
166
        tree2 = self.make_to_branch_and_tree('2')
167
 
        tree2.set_root_id(tree1.get_root_id())
 
167
        tree2.set_root_id(tree1.path2id(''))
168
168
        tree1 = self.get_tree_no_parents_abc_content(tree1)
169
169
        tree2 = self.get_tree_no_parents_abc_content_3(tree2)
170
170
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
181
181
    def test_file_rename(self):
182
182
        tree1 = self.make_branch_and_tree('1')
183
183
        tree2 = self.make_to_branch_and_tree('2')
184
 
        tree2.set_root_id(tree1.get_root_id())
 
184
        tree2.set_root_id(tree1.path2id(''))
185
185
        tree1 = self.get_tree_no_parents_abc_content(tree1)
186
186
        tree2 = self.get_tree_no_parents_abc_content_4(tree2)
187
187
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
198
198
    def test_file_rename_and_modification(self):
199
199
        tree1 = self.make_branch_and_tree('1')
200
200
        tree2 = self.make_to_branch_and_tree('2')
201
 
        tree2.set_root_id(tree1.get_root_id())
 
201
        tree2.set_root_id(tree1.path2id(''))
202
202
        tree1 = self.get_tree_no_parents_abc_content(tree1)
203
203
        tree2 = self.get_tree_no_parents_abc_content_5(tree2)
204
204
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
215
215
    def test_file_rename_and_meta_modification(self):
216
216
        tree1 = self.make_branch_and_tree('1')
217
217
        tree2 = self.make_to_branch_and_tree('2')
218
 
        tree2.set_root_id(tree1.get_root_id())
 
218
        tree2.set_root_id(tree1.path2id(''))
219
219
        tree1 = self.get_tree_no_parents_abc_content(tree1)
220
220
        tree2 = self.get_tree_no_parents_abc_content_6(tree2)
221
221
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
232
232
    def test_empty_to_abc_content_a_only(self):
233
233
        tree1 = self.make_branch_and_tree('1')
234
234
        tree2 = self.make_to_branch_and_tree('2')
235
 
        tree2.set_root_id(tree1.get_root_id())
 
235
        tree2.set_root_id(tree1.path2id(''))
236
236
        tree1 = self.get_tree_no_parents_no_content(tree1)
237
237
        tree2 = self.get_tree_no_parents_abc_content(tree2)
238
238
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
365
365
    def test_default_ignores_unversioned_files(self):
366
366
        tree1 = self.make_branch_and_tree('tree1')
367
367
        tree2 = self.make_to_branch_and_tree('tree2')
368
 
        tree2.set_root_id(tree1.get_root_id())
 
368
        tree2.set_root_id(tree1.path2id(''))
369
369
        self.build_tree(['tree1/a', 'tree1/c',
370
370
                         'tree2/a', 'tree2/b', 'tree2/c'])
371
371
        tree1.add(['a', 'c'], [b'a-id', b'c-id'])
386
386
    def test_unversioned_paths_in_tree(self):
387
387
        tree1 = self.make_branch_and_tree('tree1')
388
388
        tree2 = self.make_to_branch_and_tree('tree2')
389
 
        tree2.set_root_id(tree1.get_root_id())
 
389
        tree2.set_root_id(tree1.path2id(''))
390
390
        self.build_tree(['tree2/file', 'tree2/dir/'])
391
391
        if has_symlinks():
392
392
            os.symlink('target', 'tree2/link')
515
515
        """Create a tree with filenames chosen to exercise the walk order."""
516
516
        tree1 = self.make_branch_and_tree('tree1')
517
517
        tree2 = self.make_to_branch_and_tree('tree2')
518
 
        tree2.set_root_id(tree1.get_root_id())
 
518
        tree2.set_root_id(tree1.path2id(''))
519
519
        paths, path_ids = self._create_special_names(tree2, 'tree2')
520
520
        tree2.commit('initial', rev_id=b'rev-1')
521
521
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
528
528
        """
529
529
        tree1 = self.make_branch_and_tree('tree1')
530
530
        tree2 = self.make_to_branch_and_tree('tree2')
531
 
        tree2.set_root_id(tree1.get_root_id())
 
531
        tree2.set_root_id(tree1.path2id(''))
532
532
        paths, path_ids = self._create_special_names(tree1, 'tree1')
533
533
        paths, path_ids = self._create_special_names(tree2, 'tree2')
534
534
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
828
828
        tree1.put_file_bytes_non_atomic(
829
829
            'changing/unchanging/file', b'a file')
830
830
        tree2 = self.make_to_branch_and_tree('2')
831
 
        tree2.set_root_id(tree1.get_root_id())
 
831
        tree2.set_root_id(tree1.path2id(''))
832
832
        tree2.mkdir('changed', b'parent-id')
833
833
        tree2.mkdir('changed/unchanging', b'mid-id')
834
834
        tree2.add(['changed/unchanging/file'], [b'file-id'], ['file'])
907
907
        tree1.add(['a'], [b'a-id'], ['file'])
908
908
        tree1.put_file_bytes_non_atomic('a', b'a file')
909
909
        tree2 = self.make_to_branch_and_tree('2')
910
 
        tree2.set_root_id(tree1.get_root_id())
 
910
        tree2.set_root_id(tree1.path2id(''))
911
911
        tree2.mkdir('a', b'b-id')
912
912
        tree2.add(['a/c'], [b'c-id'], ['file'])
913
913
        tree2.put_file_bytes_non_atomic('a/c', b'another file')
927
927
        tree1.mkdir('a/reparented', b'reparented-id')
928
928
        tree1.mkdir('a/deleted', b'deleted-id')
929
929
        tree2 = self.make_to_branch_and_tree('2')
930
 
        tree2.set_root_id(tree1.get_root_id())
 
930
        tree2.set_root_id(tree1.path2id(''))
931
931
        tree2.mkdir('a', b'a-new-id')
932
932
        tree2.mkdir('a/reparented', b'reparented-id')
933
933
        tree2.add(['b'], [b'a-old-id'], ['file'])
951
951
        tree1.mkdir('a/reparented', b'reparented-id')
952
952
        tree1.mkdir('a/deleted', b'deleted-id')
953
953
        tree2 = self.make_to_branch_and_tree('2')
954
 
        tree2.set_root_id(tree1.get_root_id())
 
954
        tree2.set_root_id(tree1.path2id(''))
955
955
        tree2.mkdir('a', b'a-new-id')
956
956
        tree2.mkdir('a/reparented', b'reparented-id')
957
957
        tree1, tree2 = self.mutable_trees_to_locked_test_trees(tree1, tree2)
975
975
        tree1.mkdir('a/reparented', b'reparented-id')
976
976
        tree1.mkdir('collides', b'collides-id')
977
977
        tree2 = self.make_to_branch_and_tree('2')
978
 
        tree2.set_root_id(tree1.get_root_id())
 
978
        tree2.set_root_id(tree1.path2id(''))
979
979
        tree2.mkdir('a', b'a-new-id')
980
980
        tree2.mkdir('a/selected', b'selected-id')
981
981
        tree2.mkdir('collides', b'reparented-id')
1004
1004
        tree1.mkdir('a/deleted/reparented', b'reparented-id-2')
1005
1005
        tree1.mkdir('a/deleted/deleted', b'deleted-id-2')
1006
1006
        tree2 = self.make_to_branch_and_tree('2')
1007
 
        tree2.set_root_id(tree1.get_root_id())
 
1007
        tree2.set_root_id(tree1.path2id(''))
1008
1008
        tree2.mkdir('a', b'a-new-id')
1009
1009
        tree2.mkdir('a/reparented', b'reparented-id-1')
1010
1010
        tree2.mkdir('reparented', b'reparented-id-2')
1088
1088
    def test_missing_and_renamed(self):
1089
1089
        tree1 = self.make_branch_and_tree('tree1')
1090
1090
        tree2 = self.make_to_branch_and_tree('tree2')
1091
 
        tree2.set_root_id(tree1.get_root_id())
 
1091
        tree2.set_root_id(tree1.path2id(''))
1092
1092
        self.build_tree(['tree1/file'])
1093
1093
        tree1.add(['file'], [b'file-id'])
1094
1094
        self.build_tree(['tree2/directory/'])
1106
1106
    def test_only_in_source_and_missing(self):
1107
1107
        tree1 = self.make_branch_and_tree('tree1')
1108
1108
        tree2 = self.make_to_branch_and_tree('tree2')
1109
 
        tree2.set_root_id(tree1.get_root_id())
 
1109
        tree2.set_root_id(tree1.path2id(''))
1110
1110
        self.build_tree(['tree1/file'])
1111
1111
        tree1.add(['file'], [b'file-id'])
1112
1112
        os.unlink('tree1/file')
1121
1121
    def test_only_in_target_and_missing(self):
1122
1122
        tree1 = self.make_branch_and_tree('tree1')
1123
1123
        tree2 = self.make_to_branch_and_tree('tree2')
1124
 
        tree2.set_root_id(tree1.get_root_id())
 
1124
        tree2.set_root_id(tree1.path2id(''))
1125
1125
        self.build_tree(['tree2/file'])
1126
1126
        tree2.add(['file'], [b'file-id'])
1127
1127
        os.unlink('tree2/file')
1136
1136
    def test_only_in_target_missing_subtree_specific_bug_367632(self):
1137
1137
        tree1 = self.make_branch_and_tree('tree1')
1138
1138
        tree2 = self.make_to_branch_and_tree('tree2')
1139
 
        tree2.set_root_id(tree1.get_root_id())
 
1139
        tree2.set_root_id(tree1.path2id(''))
1140
1140
        self.build_tree(['tree2/a-dir/', 'tree2/a-dir/a-file'])
1141
1141
        tree2.add(['a-dir', 'a-dir/a-file'], [b'dir-id', b'file-id'])
1142
1142
        os.unlink('tree2/a-dir/a-file')
1246
1246
    def test_default_ignores_unversioned_files(self):
1247
1247
        tree1 = self.make_branch_and_tree('tree1')
1248
1248
        tree2 = self.make_to_branch_and_tree('tree2')
1249
 
        tree2.set_root_id(tree1.get_root_id())
 
1249
        tree2.set_root_id(tree1.path2id(''))
1250
1250
        self.build_tree(['tree1/a', 'tree1/c',
1251
1251
                         'tree2/a', 'tree2/b', 'tree2/c'])
1252
1252
        tree1.add(['a', 'c'], [b'a-id', b'c-id'])
1266
1266
    def test_unversioned_paths_in_tree(self):
1267
1267
        tree1 = self.make_branch_and_tree('tree1')
1268
1268
        tree2 = self.make_to_branch_and_tree('tree2')
1269
 
        tree2.set_root_id(tree1.get_root_id())
 
1269
        tree2.set_root_id(tree1.path2id(''))
1270
1270
        self.build_tree(['tree2/file', 'tree2/dir/'])
1271
1271
        if has_symlinks():
1272
1272
            os.symlink('target', 'tree2/link')
1319
1319
        # both foo and bar.
1320
1320
        tree1 = self.make_branch_and_tree('tree1')
1321
1321
        tree2 = self.make_to_branch_and_tree('tree2')
1322
 
        tree2.set_root_id(tree1.get_root_id())
 
1322
        tree2.set_root_id(tree1.path2id(''))
1323
1323
        self.build_tree(['tree2/file', 'tree2/dir/',
1324
1324
                         'tree1/file', 'tree2/movedfile',
1325
1325
                         'tree1/dir/', 'tree2/moveddir/'])
1363
1363
        """Test when we have a few files with similar names."""
1364
1364
        tree1 = self.make_branch_and_tree('tree1')
1365
1365
        tree2 = self.make_branch_and_tree('tree2')
1366
 
        tree2.set_root_id(tree1.get_root_id())
 
1366
        tree2.set_root_id(tree1.path2id(''))
1367
1367
 
1368
1368
        # The trees are actually identical, but they happen to contain
1369
1369
        # similarly named files.
1391
1391
        self.assertEqual([], self.do_iter_changes(tree1, tree2,
1392
1392
                                                  want_unversioned=True))
1393
1393
        expected = self.sorted([
1394
 
            self.unchanged(tree2, tree2.get_root_id()),
 
1394
            self.unchanged(tree2, tree2.path2id('')),
1395
1395
            self.unchanged(tree2, b'a-id'),
1396
1396
            self.unchanged(tree2, b'b-id'),
1397
1397
            self.unchanged(tree2, b'c-id'),
1407
1407
    def test_unversioned_subtree_only_emits_root(self):
1408
1408
        tree1 = self.make_branch_and_tree('tree1')
1409
1409
        tree2 = self.make_to_branch_and_tree('tree2')
1410
 
        tree2.set_root_id(tree1.get_root_id())
 
1410
        tree2.set_root_id(tree1.path2id(''))
1411
1411
        self.build_tree(['tree2/dir/', 'tree2/dir/file'])
1412
1412
        tree1, tree2 = self.mutable_trees_to_test_trees(self, tree1, tree2)
1413
1413
        self.not_applicable_if_cannot_represent_unversioned(tree2)
1420
1420
    def make_trees_with_symlinks(self):
1421
1421
        tree1 = self.make_branch_and_tree('tree1')
1422
1422
        tree2 = self.make_to_branch_and_tree('tree2')
1423
 
        tree2.set_root_id(tree1.get_root_id())
 
1423
        tree2.set_root_id(tree1.path2id(''))
1424
1424
        self.build_tree(['tree1/fromfile', 'tree1/fromdir/'])
1425
1425
        self.build_tree(['tree2/tofile', 'tree2/todir/', 'tree2/unknown'])
1426
1426
        os.symlink('original', 'tree1/changed')
1520
1520
    def test_trees_with_deleted_dir(self):
1521
1521
        tree1 = self.make_branch_and_tree('tree1')
1522
1522
        tree2 = self.make_to_branch_and_tree('tree2')
1523
 
        tree2.set_root_id(tree1.get_root_id())
 
1523
        tree2.set_root_id(tree1.path2id(''))
1524
1524
        self.build_tree(['tree1/a', 'tree1/b/', 'tree1/b/c',
1525
1525
                         'tree1/b/d/', 'tree1/b/d/e', 'tree1/f/', 'tree1/f/g',
1526
1526
                         'tree2/a', 'tree2/f/', 'tree2/f/g'])
1545
1545
    def test_added_unicode(self):
1546
1546
        tree1 = self.make_branch_and_tree('tree1')
1547
1547
        tree2 = self.make_to_branch_and_tree('tree2')
1548
 
        root_id = tree1.get_root_id()
 
1548
        root_id = tree1.path2id('')
1549
1549
        tree2.set_root_id(root_id)
1550
1550
 
1551
1551
        # u'\u03b1' == GREEK SMALL LETTER ALPHA
1574
1574
    def test_deleted_unicode(self):
1575
1575
        tree1 = self.make_branch_and_tree('tree1')
1576
1576
        tree2 = self.make_to_branch_and_tree('tree2')
1577
 
        root_id = tree1.get_root_id()
 
1577
        root_id = tree1.path2id('')
1578
1578
        tree2.set_root_id(root_id)
1579
1579
 
1580
1580
        # u'\u03b1' == GREEK SMALL LETTER ALPHA
1603
1603
    def test_modified_unicode(self):
1604
1604
        tree1 = self.make_branch_and_tree('tree1')
1605
1605
        tree2 = self.make_to_branch_and_tree('tree2')
1606
 
        root_id = tree1.get_root_id()
 
1606
        root_id = tree1.path2id('')
1607
1607
        tree2.set_root_id(root_id)
1608
1608
 
1609
1609
        # u'\u03b1' == GREEK SMALL LETTER ALPHA
1633
1633
    def test_renamed_unicode(self):
1634
1634
        tree1 = self.make_branch_and_tree('tree1')
1635
1635
        tree2 = self.make_to_branch_and_tree('tree2')
1636
 
        root_id = tree1.get_root_id()
 
1636
        root_id = tree1.path2id('')
1637
1637
        tree2.set_root_id(root_id)
1638
1638
 
1639
1639
        # u'\u03b1' == GREEK SMALL LETTER ALPHA
1664
1664
    def test_unchanged_unicode(self):
1665
1665
        tree1 = self.make_branch_and_tree('tree1')
1666
1666
        tree2 = self.make_to_branch_and_tree('tree2')
1667
 
        root_id = tree1.get_root_id()
 
1667
        root_id = tree1.path2id('')
1668
1668
        tree2.set_root_id(root_id)
1669
1669
        # u'\u03b1' == GREEK SMALL LETTER ALPHA
1670
1670
        # u'\u03c9' == GREEK SMALL LETTER OMEGA
1712
1712
    def test_unknown_unicode(self):
1713
1713
        tree1 = self.make_branch_and_tree('tree1')
1714
1714
        tree2 = self.make_to_branch_and_tree('tree2')
1715
 
        root_id = tree1.get_root_id()
 
1715
        root_id = tree1.path2id('')
1716
1716
        tree2.set_root_id(root_id)
1717
1717
        # u'\u03b1' == GREEK SMALL LETTER ALPHA
1718
1718
        # u'\u03c9' == GREEK SMALL LETTER OMEGA
1766
1766
    def test_unknown_empty_dir(self):
1767
1767
        tree1 = self.make_branch_and_tree('tree1')
1768
1768
        tree2 = self.make_to_branch_and_tree('tree2')
1769
 
        root_id = tree1.get_root_id()
 
1769
        root_id = tree1.path2id('')
1770
1770
        tree2.set_root_id(root_id)
1771
1771
 
1772
1772
        # Start with 2 identical trees
1808
1808
    def test_rename_over_deleted(self):
1809
1809
        tree1 = self.make_branch_and_tree('tree1')
1810
1810
        tree2 = self.make_to_branch_and_tree('tree2')
1811
 
        root_id = tree1.get_root_id()
 
1811
        root_id = tree1.path2id('')
1812
1812
        tree2.set_root_id(root_id)
1813
1813
 
1814
1814
        # The final changes should be:
1845
1845
        """Test a file marked removed, but still present on disk."""
1846
1846
        tree1 = self.make_branch_and_tree('tree1')
1847
1847
        tree2 = self.make_to_branch_and_tree('tree2')
1848
 
        root_id = tree1.get_root_id()
 
1848
        root_id = tree1.path2id('')
1849
1849
        tree2.set_root_id(root_id)
1850
1850
 
1851
1851
        # The final changes should be:
1883
1883
        """Test when we have renamed a file, and put another in its place."""
1884
1884
        tree1 = self.make_branch_and_tree('tree1')
1885
1885
        tree2 = self.make_to_branch_and_tree('tree2')
1886
 
        root_id = tree1.get_root_id()
 
1886
        root_id = tree1.path2id('')
1887
1887
        tree2.set_root_id(root_id)
1888
1888
 
1889
1889
        # The final changes are:
1920
1920
        """A file was moved on the filesystem, but not in bzr."""
1921
1921
        tree1 = self.make_branch_and_tree('tree1')
1922
1922
        tree2 = self.make_to_branch_and_tree('tree2')
1923
 
        root_id = tree1.get_root_id()
 
1923
        root_id = tree1.path2id('')
1924
1924
        tree2.set_root_id(root_id)
1925
1925
 
1926
1926
        # The final changes are:
1941
1941
        self.not_applicable_if_missing_in('a', tree2)
1942
1942
 
1943
1943
        expected = self.sorted([
1944
 
            self.missing(b'a-id', 'a', 'a', tree2.get_root_id(), 'file'),
 
1944
            self.missing(b'a-id', 'a', 'a', tree2.path2id(''), 'file'),
1945
1945
            self.unversioned(tree2, 'a2'),
1946
1946
            ])
1947
1947
        self.assertEqual(expected,