Merge lp:~jelmer/brz/is-versioned into lp:brz
- is-versioned
- Merge into trunk
Proposed by
Jelmer Vernooij
Status: | Merged |
---|---|
Merged at revision: | 6856 |
Proposed branch: | lp:~jelmer/brz/is-versioned |
Merge into: | lp:brz |
Diff against target: |
796 lines (+100/-105) 31 files modified
breezy/builtins.py (+1/-1) breezy/bzr/bzrdir.py (+1/-1) breezy/bzr/workingtree.py (+3/-2) breezy/ignores.py (+1/-1) breezy/plugins/fastimport/tests/test_generic_processor.py (+2/-4) breezy/rename_map.py (+1/-1) breezy/tests/__init__.py (+2/-2) breezy/tests/blackbox/test_mv.py (+6/-6) breezy/tests/blackbox/test_remove.py (+1/-1) breezy/tests/blackbox/test_repair_workingtree.py (+2/-2) breezy/tests/per_intertree/__init__.py (+1/-1) breezy/tests/per_tree/test_test_trees.py (+3/-0) breezy/tests/per_tree/test_tree.py (+5/-4) breezy/tests/per_workingtree/test_get_file_mtime.py (+1/-4) breezy/tests/per_workingtree/test_inv.py (+1/-1) breezy/tests/per_workingtree/test_read_working_inventory.py (+1/-4) breezy/tests/per_workingtree/test_smart_add.py (+14/-15) breezy/tests/per_workingtree/test_symlinks.py (+8/-8) breezy/tests/per_workingtree/test_unversion.py (+3/-4) breezy/tests/per_workingtree/test_workingtree.py (+4/-8) breezy/tests/test_bundle.py (+7/-7) breezy/tests/test_commit.py (+3/-7) breezy/tests/test_inv.py (+3/-3) breezy/tests/test_merge.py (+1/-1) breezy/tests/test_transform.py (+7/-7) breezy/tests/test_uncommit.py (+1/-1) breezy/tests/test_upstream_import.py (+5/-5) breezy/tests/test_workingtree_4.py (+2/-2) breezy/tree.py (+8/-0) breezy/upstream_import.py (+1/-1) breezy/workingtree.py (+1/-1) |
To merge this branch: | bzr merge lp:~jelmer/brz/is-versioned |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Martin Packman | Approve | ||
Review via email:
|
Commit message
Description of the change
Add Tree.is_
Another step twoards removing file_ids from the public API.
To post a comment you must log in.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'breezy/builtins.py' | |||
2 | --- breezy/builtins.py 2017-12-23 10:48:42 +0000 | |||
3 | +++ breezy/builtins.py 2018-02-15 22:17:55 +0000 | |||
4 | @@ -875,7 +875,7 @@ | |||
5 | 875 | 875 | ||
6 | 876 | @classmethod | 876 | @classmethod |
7 | 877 | def add_file_with_parents(cls, wt, relpath): | 877 | def add_file_with_parents(cls, wt, relpath): |
9 | 878 | if wt.path2id(relpath) is not None: | 878 | if wt.is_versioned(relpath): |
10 | 879 | return | 879 | return |
11 | 880 | cls.add_file_with_parents(wt, osutils.dirname(relpath)) | 880 | cls.add_file_with_parents(wt, osutils.dirname(relpath)) |
12 | 881 | wt.add([relpath]) | 881 | wt.add([relpath]) |
13 | 882 | 882 | ||
14 | === modified file 'breezy/bzr/bzrdir.py' | |||
15 | --- breezy/bzr/bzrdir.py 2017-11-23 20:02:55 +0000 | |||
16 | +++ breezy/bzr/bzrdir.py 2018-02-15 22:17:55 +0000 | |||
17 | @@ -451,7 +451,7 @@ | |||
18 | 451 | hardlink=hardlink, from_branch=result_branch) | 451 | hardlink=hardlink, from_branch=result_branch) |
19 | 452 | wt.lock_write() | 452 | wt.lock_write() |
20 | 453 | try: | 453 | try: |
22 | 454 | if wt.path2id('') is None: | 454 | if not wt.is_versioned(''): |
23 | 455 | try: | 455 | try: |
24 | 456 | wt.set_root_id(self.open_workingtree.get_root_id()) | 456 | wt.set_root_id(self.open_workingtree.get_root_id()) |
25 | 457 | except errors.NoWorkingTree: | 457 | except errors.NoWorkingTree: |
26 | 458 | 458 | ||
27 | === modified file 'breezy/bzr/workingtree.py' | |||
28 | --- breezy/bzr/workingtree.py 2017-12-22 16:24:08 +0000 | |||
29 | +++ breezy/bzr/workingtree.py 2018-02-15 22:17:55 +0000 | |||
30 | @@ -943,7 +943,7 @@ | |||
31 | 943 | self.add_parent_tree_id(parent_id) | 943 | self.add_parent_tree_id(parent_id) |
32 | 944 | other_tree.controldir.retire_bzrdir() | 944 | other_tree.controldir.retire_bzrdir() |
33 | 945 | 945 | ||
35 | 946 | def extract(self, file_id, format=None): | 946 | def extract(self, sub_path, file_id=None, format=None): |
36 | 947 | """Extract a subtree from this tree. | 947 | """Extract a subtree from this tree. |
37 | 948 | 948 | ||
38 | 949 | A new branch will be created, relative to the path for this tree. | 949 | A new branch will be created, relative to the path for this tree. |
39 | @@ -958,7 +958,6 @@ | |||
40 | 958 | 958 | ||
41 | 959 | with self.lock_tree_write(): | 959 | with self.lock_tree_write(): |
42 | 960 | self.flush() | 960 | self.flush() |
43 | 961 | sub_path = self.id2path(file_id) | ||
44 | 962 | branch_transport = mkdirs(sub_path) | 961 | branch_transport = mkdirs(sub_path) |
45 | 963 | if format is None: | 962 | if format is None: |
46 | 964 | format = self.controldir.cloning_metadir() | 963 | format = self.controldir.cloning_metadir() |
47 | @@ -985,6 +984,8 @@ | |||
48 | 985 | # FIXME: Support nested trees | 984 | # FIXME: Support nested trees |
49 | 986 | my_inv = self.root_inventory | 985 | my_inv = self.root_inventory |
50 | 987 | child_inv = inventory.Inventory(root_id=None) | 986 | child_inv = inventory.Inventory(root_id=None) |
51 | 987 | if file_id is None: | ||
52 | 988 | file_id = self.path2id(sub_path) | ||
53 | 988 | new_root = my_inv[file_id] | 989 | new_root = my_inv[file_id] |
54 | 989 | my_inv.remove_recursive_id(file_id) | 990 | my_inv.remove_recursive_id(file_id) |
55 | 990 | new_root.parent_id = None | 991 | new_root.parent_id = None |
56 | 991 | 992 | ||
57 | === modified file 'breezy/ignores.py' | |||
58 | --- breezy/ignores.py 2017-11-12 13:31:49 +0000 | |||
59 | +++ breezy/ignores.py 2018-02-15 22:17:55 +0000 | |||
60 | @@ -225,5 +225,5 @@ | |||
61 | 225 | finally: | 225 | finally: |
62 | 226 | f.close() | 226 | f.close() |
63 | 227 | 227 | ||
65 | 228 | if not tree.path2id(breezy.IGNORE_FILENAME): | 228 | if not tree.is_versioned(breezy.IGNORE_FILENAME): |
66 | 229 | tree.add([breezy.IGNORE_FILENAME]) | 229 | tree.add([breezy.IGNORE_FILENAME]) |
67 | 230 | 230 | ||
68 | === modified file 'breezy/plugins/fastimport/tests/test_generic_processor.py' | |||
69 | --- breezy/plugins/fastimport/tests/test_generic_processor.py 2018-01-22 02:23:22 +0000 | |||
70 | +++ breezy/plugins/fastimport/tests/test_generic_processor.py 2018-02-15 22:17:55 +0000 | |||
71 | @@ -173,14 +173,12 @@ | |||
72 | 173 | str(expected_kind_changed_entry), kind_changed_files)) | 173 | str(expected_kind_changed_entry), kind_changed_files)) |
73 | 174 | 174 | ||
74 | 175 | def assertContent(self, branch, tree, path, content): | 175 | def assertContent(self, branch, tree, path, content): |
75 | 176 | file_id = tree.path2id(path) | ||
76 | 177 | with branch.lock_read(): | 176 | with branch.lock_read(): |
78 | 178 | self.assertEqual(tree.get_file_text(path, file_id), content) | 177 | self.assertEqual(tree.get_file_text(path), content) |
79 | 179 | 178 | ||
80 | 180 | def assertSymlinkTarget(self, branch, tree, path, target): | 179 | def assertSymlinkTarget(self, branch, tree, path, target): |
81 | 181 | file_id = tree.path2id(path) | ||
82 | 182 | with branch.lock_read(): | 180 | with branch.lock_read(): |
84 | 183 | self.assertEqual(tree.get_symlink_target(path, file_id), target) | 181 | self.assertEqual(tree.get_symlink_target(path), target) |
85 | 184 | 182 | ||
86 | 185 | def assertExecutable(self, branch, tree, path, executable): | 183 | def assertExecutable(self, branch, tree, path, executable): |
87 | 186 | with branch.lock_read(): | 184 | with branch.lock_read(): |
88 | 187 | 185 | ||
89 | === modified file 'breezy/rename_map.py' | |||
90 | --- breezy/rename_map.py 2017-11-12 17:53:35 +0000 | |||
91 | +++ breezy/rename_map.py 2018-02-15 22:17:55 +0000 | |||
92 | @@ -146,7 +146,7 @@ | |||
93 | 146 | while True: | 146 | while True: |
94 | 147 | child = path | 147 | child = path |
95 | 148 | path = osutils.dirname(path) | 148 | path = osutils.dirname(path) |
97 | 149 | if self.tree.path2id(path) is not None: | 149 | if self.tree.is_versioned(path): |
98 | 150 | break | 150 | break |
99 | 151 | required_parents.setdefault(path, []).append(child) | 151 | required_parents.setdefault(path, []).append(child) |
100 | 152 | require_ids = {} | 152 | require_ids = {} |
101 | 153 | 153 | ||
102 | === modified file 'breezy/tests/__init__.py' | |||
103 | --- breezy/tests/__init__.py 2017-11-12 13:53:51 +0000 | |||
104 | +++ breezy/tests/__init__.py 2018-02-15 22:17:55 +0000 | |||
105 | @@ -2865,7 +2865,7 @@ | |||
106 | 2865 | for p in path: | 2865 | for p in path: |
107 | 2866 | self.assertInWorkingTree(p, tree=tree) | 2866 | self.assertInWorkingTree(p, tree=tree) |
108 | 2867 | else: | 2867 | else: |
110 | 2868 | self.assertIsNot(tree.path2id(path), None, | 2868 | self.assertTrue(tree.is_versioned(path), |
111 | 2869 | path+' not in working tree.') | 2869 | path+' not in working tree.') |
112 | 2870 | 2870 | ||
113 | 2871 | def assertNotInWorkingTree(self, path, root_path='.', tree=None): | 2871 | def assertNotInWorkingTree(self, path, root_path='.', tree=None): |
114 | @@ -2876,7 +2876,7 @@ | |||
115 | 2876 | for p in path: | 2876 | for p in path: |
116 | 2877 | self.assertNotInWorkingTree(p, tree=tree) | 2877 | self.assertNotInWorkingTree(p, tree=tree) |
117 | 2878 | else: | 2878 | else: |
119 | 2879 | self.assertIs(tree.path2id(path), None, path+' in working tree.') | 2879 | self.assertFalse(tree.is_versioned(path), path+' in working tree.') |
120 | 2880 | 2880 | ||
121 | 2881 | 2881 | ||
122 | 2882 | class TestCaseWithTransport(TestCaseInTempDir): | 2882 | class TestCaseWithTransport(TestCaseInTempDir): |
123 | 2883 | 2883 | ||
124 | === modified file 'breezy/tests/blackbox/test_mv.py' | |||
125 | --- breezy/tests/blackbox/test_mv.py 2017-11-12 13:53:51 +0000 | |||
126 | +++ breezy/tests/blackbox/test_mv.py 2018-02-15 22:17:55 +0000 | |||
127 | @@ -453,8 +453,8 @@ | |||
128 | 453 | self.assertEqual(out, '') | 453 | self.assertEqual(out, '') |
129 | 454 | self.assertEqual(err, 'a => b\nc => d\n') | 454 | self.assertEqual(err, 'a => b\nc => d\n') |
130 | 455 | tree = workingtree.WorkingTree.open('tree') | 455 | tree = workingtree.WorkingTree.open('tree') |
133 | 456 | self.assertIsNot(None, tree.path2id('b')) | 456 | self.assertTrue(tree.is_versioned('b')) |
134 | 457 | self.assertIsNot(None, tree.path2id('d')) | 457 | self.assertTrue(tree.is_versioned('d')) |
135 | 458 | 458 | ||
136 | 459 | def test_mv_auto_one_path(self): | 459 | def test_mv_auto_one_path(self): |
137 | 460 | self.make_abcd_tree() | 460 | self.make_abcd_tree() |
138 | @@ -462,8 +462,8 @@ | |||
139 | 462 | self.assertEqual(out, '') | 462 | self.assertEqual(out, '') |
140 | 463 | self.assertEqual(err, 'a => b\nc => d\n') | 463 | self.assertEqual(err, 'a => b\nc => d\n') |
141 | 464 | tree = workingtree.WorkingTree.open('tree') | 464 | tree = workingtree.WorkingTree.open('tree') |
144 | 465 | self.assertIsNot(None, tree.path2id('b')) | 465 | self.assertTrue(tree.is_versioned('b')) |
145 | 466 | self.assertIsNot(None, tree.path2id('d')) | 466 | self.assertTrue(tree.is_versioned('d')) |
146 | 467 | 467 | ||
147 | 468 | def test_mv_auto_two_paths(self): | 468 | def test_mv_auto_two_paths(self): |
148 | 469 | self.make_abcd_tree() | 469 | self.make_abcd_tree() |
149 | @@ -477,8 +477,8 @@ | |||
150 | 477 | self.assertEqual(out, '') | 477 | self.assertEqual(out, '') |
151 | 478 | self.assertEqual(err, 'a => b\nc => d\n') | 478 | self.assertEqual(err, 'a => b\nc => d\n') |
152 | 479 | tree = workingtree.WorkingTree.open('tree') | 479 | tree = workingtree.WorkingTree.open('tree') |
155 | 480 | self.assertIsNot(None, tree.path2id('a')) | 480 | self.assertTrue(tree.is_versioned('a')) |
156 | 481 | self.assertIsNot(None, tree.path2id('c')) | 481 | self.assertTrue(tree.is_versioned('c')) |
157 | 482 | 482 | ||
158 | 483 | def test_mv_no_auto_dry_run(self): | 483 | def test_mv_no_auto_dry_run(self): |
159 | 484 | self.make_abcd_tree() | 484 | self.make_abcd_tree() |
160 | 485 | 485 | ||
161 | === modified file 'breezy/tests/blackbox/test_remove.py' | |||
162 | --- breezy/tests/blackbox/test_remove.py 2017-11-12 13:53:51 +0000 | |||
163 | +++ breezy/tests/blackbox/test_remove.py 2018-02-15 22:17:55 +0000 | |||
164 | @@ -106,7 +106,7 @@ | |||
165 | 106 | tree.commit('save foo and bar') | 106 | tree.commit('save foo and bar') |
166 | 107 | os.unlink('bar') | 107 | os.unlink('bar') |
167 | 108 | self.run_bzr(['rm']) | 108 | self.run_bzr(['rm']) |
169 | 109 | self.assertEqual(None, tree.path2id('bar')) | 109 | self.assertFalse(tree.is_versioned('bar')) |
170 | 110 | # Running rm with a deleted file does not error. | 110 | # Running rm with a deleted file does not error. |
171 | 111 | out, err = self.run_bzr(['rm']) | 111 | out, err = self.run_bzr(['rm']) |
172 | 112 | self.assertEqual('', out) | 112 | self.assertEqual('', out) |
173 | 113 | 113 | ||
174 | === modified file 'breezy/tests/blackbox/test_repair_workingtree.py' | |||
175 | --- breezy/tests/blackbox/test_repair_workingtree.py 2017-08-26 13:58:53 +0000 | |||
176 | +++ breezy/tests/blackbox/test_repair_workingtree.py 2018-02-15 22:17:55 +0000 | |||
177 | @@ -65,10 +65,10 @@ | |||
178 | 65 | def test_repair_forced(self): | 65 | def test_repair_forced(self): |
179 | 66 | tree = self.make_initial_tree() | 66 | tree = self.make_initial_tree() |
180 | 67 | tree.rename_one('dir', 'alt_dir') | 67 | tree.rename_one('dir', 'alt_dir') |
182 | 68 | self.assertIsNot(None, tree.path2id('alt_dir')) | 68 | self.assertTrue(tree.is_versioned('alt_dir')) |
183 | 69 | self.run_bzr('repair-workingtree -d tree --force') | 69 | self.run_bzr('repair-workingtree -d tree --force') |
184 | 70 | # This requires the tree has reloaded the working state | 70 | # This requires the tree has reloaded the working state |
186 | 71 | self.assertIs(None, tree.path2id('alt_dir')) | 71 | self.assertFalse(tree.is_versioned('alt_dir')) |
187 | 72 | self.assertPathExists('tree/alt_dir') | 72 | self.assertPathExists('tree/alt_dir') |
188 | 73 | 73 | ||
189 | 74 | def test_repair_corrupted_dirstate(self): | 74 | def test_repair_corrupted_dirstate(self): |
190 | 75 | 75 | ||
191 | === modified file 'breezy/tests/per_intertree/__init__.py' | |||
192 | --- breezy/tests/per_intertree/__init__.py 2017-11-12 13:53:51 +0000 | |||
193 | +++ breezy/tests/per_intertree/__init__.py 2018-02-15 22:17:55 +0000 | |||
194 | @@ -62,7 +62,7 @@ | |||
195 | 62 | raise tests.TestNotApplicable('cannot represent unversioned files') | 62 | raise tests.TestNotApplicable('cannot represent unversioned files') |
196 | 63 | 63 | ||
197 | 64 | def not_applicable_if_missing_in(self, relpath, tree): | 64 | def not_applicable_if_missing_in(self, relpath, tree): |
199 | 65 | if not tree.path2id(relpath): | 65 | if not tree.is_versioned(relpath): |
200 | 66 | # The locked test trees conversion could not preserve the missing | 66 | # The locked test trees conversion could not preserve the missing |
201 | 67 | # file status. This is normal (e.g. InterDirstateTree falls back | 67 | # file status. This is normal (e.g. InterDirstateTree falls back |
202 | 68 | # to InterTree if the basis is not a DirstateRevisionTree, and | 68 | # to InterTree if the basis is not a DirstateRevisionTree, and |
203 | 69 | 69 | ||
204 | === modified file 'breezy/tests/per_tree/test_test_trees.py' | |||
205 | --- breezy/tests/per_tree/test_test_trees.py 2018-02-03 13:39:29 +0000 | |||
206 | +++ breezy/tests/per_tree/test_test_trees.py 2018-02-15 22:17:55 +0000 | |||
207 | @@ -49,6 +49,9 @@ | |||
208 | 49 | self.assertEqual( | 49 | self.assertEqual( |
209 | 50 | {'', 'a', 'b', 'b/c'}, | 50 | {'', 'a', 'b', 'b/c'}, |
210 | 51 | set(tree.all_versioned_paths())) | 51 | set(tree.all_versioned_paths())) |
211 | 52 | self.assertTrue(tree.is_versioned('a')) | ||
212 | 53 | self.assertTrue(tree.is_versioned('b')) | ||
213 | 54 | self.assertTrue(tree.is_versioned('b/c')) | ||
214 | 52 | self.assertEqual( | 55 | self.assertEqual( |
215 | 53 | [(p, tree.path2id(p)) for p in ['', 'a', 'b', 'b/c']], | 56 | [(p, tree.path2id(p)) for p in ['', 'a', 'b', 'b/c']], |
216 | 54 | [(path, node.file_id) for path, node in tree.iter_entries_by_dir()]) | 57 | [(path, node.file_id) for path, node in tree.iter_entries_by_dir()]) |
217 | 55 | 58 | ||
218 | === modified file 'breezy/tests/per_tree/test_tree.py' | |||
219 | --- breezy/tests/per_tree/test_tree.py 2018-01-12 08:52:43 +0000 | |||
220 | +++ breezy/tests/per_tree/test_tree.py 2018-02-15 22:17:55 +0000 | |||
221 | @@ -116,6 +116,10 @@ | |||
222 | 116 | if root_id is not None: | 116 | if root_id is not None: |
223 | 117 | self.assertIsInstance(root_id, str) | 117 | self.assertIsInstance(root_id, str) |
224 | 118 | 118 | ||
225 | 119 | def test_is_versioned(self): | ||
226 | 120 | self.assertTrue(tree.is_versioned('')) | ||
227 | 121 | self.assertFalse(tree.is_versioned('blah')) | ||
228 | 122 | |||
229 | 119 | 123 | ||
230 | 120 | class TestFileIds(TestCaseWithTree): | 124 | class TestFileIds(TestCaseWithTree): |
231 | 121 | 125 | ||
232 | @@ -124,13 +128,10 @@ | |||
233 | 124 | work_tree = self.make_branch_and_tree('wt') | 128 | work_tree = self.make_branch_and_tree('wt') |
234 | 125 | tree = self.get_tree_no_parents_abc_content(work_tree) | 129 | tree = self.get_tree_no_parents_abc_content(work_tree) |
235 | 126 | a_id = tree.path2id('a') | 130 | a_id = tree.path2id('a') |
238 | 127 | tree.lock_read() | 131 | with tree.lock_read(): |
237 | 128 | try: | ||
239 | 129 | self.assertEqual(u'a', tree.id2path(a_id)) | 132 | self.assertEqual(u'a', tree.id2path(a_id)) |
240 | 130 | # other ids give an error- don't return None for this case | 133 | # other ids give an error- don't return None for this case |
241 | 131 | self.assertRaises(errors.NoSuchId, tree.id2path, 'a') | 134 | self.assertRaises(errors.NoSuchId, tree.id2path, 'a') |
242 | 132 | finally: | ||
243 | 133 | tree.unlock() | ||
244 | 134 | 135 | ||
245 | 135 | def test_all_file_ids(self): | 136 | def test_all_file_ids(self): |
246 | 136 | work_tree = self.make_branch_and_tree('wt') | 137 | work_tree = self.make_branch_and_tree('wt') |
247 | 137 | 138 | ||
248 | === modified file 'breezy/tests/per_workingtree/test_get_file_mtime.py' | |||
249 | --- breezy/tests/per_workingtree/test_get_file_mtime.py 2018-01-12 08:52:43 +0000 | |||
250 | +++ breezy/tests/per_workingtree/test_get_file_mtime.py 2018-02-15 22:17:55 +0000 | |||
251 | @@ -111,9 +111,6 @@ | |||
252 | 111 | one_id = tree.path2id('one') | 111 | one_id = tree.path2id('one') |
253 | 112 | 112 | ||
254 | 113 | os.remove('tree/one') | 113 | os.remove('tree/one') |
257 | 114 | tree.lock_read() | 114 | with tree.lock_read(): |
256 | 115 | try: | ||
258 | 116 | self.assertRaises(errors.NoSuchFile, tree.get_file_mtime, 'one') | 115 | self.assertRaises(errors.NoSuchFile, tree.get_file_mtime, 'one') |
259 | 117 | finally: | ||
260 | 118 | tree.unlock() | ||
261 | 119 | 116 | ||
262 | 120 | 117 | ||
263 | === modified file 'breezy/tests/per_workingtree/test_inv.py' | |||
264 | --- breezy/tests/per_workingtree/test_inv.py 2017-11-24 09:25:13 +0000 | |||
265 | +++ breezy/tests/per_workingtree/test_inv.py 2018-02-15 22:17:55 +0000 | |||
266 | @@ -68,7 +68,7 @@ | |||
267 | 68 | wt.add(['foo', 'foo/bar'], ['foo-id', 'bar-id']) | 68 | wt.add(['foo', 'foo/bar'], ['foo-id', 'bar-id']) |
268 | 69 | wt.apply_inventory_delta([('foo', None, 'foo-id', None), | 69 | wt.apply_inventory_delta([('foo', None, 'foo-id', None), |
269 | 70 | ('foo/bar', None, 'bar-id', None)]) | 70 | ('foo/bar', None, 'bar-id', None)]) |
271 | 71 | self.assertIs(None, wt.path2id('foo')) | 71 | self.assertFalse(wt.is_versioned('foo')) |
272 | 72 | 72 | ||
273 | 73 | def test_rename_dir_with_children(self): | 73 | def test_rename_dir_with_children(self): |
274 | 74 | wt = self.make_branch_and_tree('.') | 74 | wt = self.make_branch_and_tree('.') |
275 | 75 | 75 | ||
276 | === modified file 'breezy/tests/per_workingtree/test_read_working_inventory.py' | |||
277 | --- breezy/tests/per_workingtree/test_read_working_inventory.py 2017-06-10 01:39:46 +0000 | |||
278 | +++ breezy/tests/per_workingtree/test_read_working_inventory.py 2018-02-15 22:17:55 +0000 | |||
279 | @@ -41,8 +41,7 @@ | |||
280 | 41 | "non-inventory working trees") | 41 | "non-inventory working trees") |
281 | 42 | # prepare for a series of changes that will modify the | 42 | # prepare for a series of changes that will modify the |
282 | 43 | # inventory | 43 | # inventory |
285 | 44 | tree.lock_write() | 44 | with tree.lock_write(): |
284 | 45 | try: | ||
286 | 46 | tree.set_root_id('new-root') | 45 | tree.set_root_id('new-root') |
287 | 47 | # having dirtied the inventory, we can now expect an | 46 | # having dirtied the inventory, we can now expect an |
288 | 48 | # InventoryModified exception when doing a read_working_inventory() | 47 | # InventoryModified exception when doing a read_working_inventory() |
289 | @@ -53,5 +52,3 @@ | |||
290 | 53 | pass | 52 | pass |
291 | 54 | else: | 53 | else: |
292 | 55 | self.assertEqual('new-root', tree.path2id('')) | 54 | self.assertEqual('new-root', tree.path2id('')) |
293 | 56 | finally: | ||
294 | 57 | tree.unlock() | ||
295 | 58 | 55 | ||
296 | === modified file 'breezy/tests/per_workingtree/test_smart_add.py' | |||
297 | --- breezy/tests/per_workingtree/test_smart_add.py 2018-02-03 13:39:29 +0000 | |||
298 | +++ breezy/tests/per_workingtree/test_smart_add.py 2018-02-15 22:17:55 +0000 | |||
299 | @@ -84,7 +84,7 @@ | |||
300 | 84 | wt.unlock() | 84 | wt.unlock() |
301 | 85 | # and the disk state should be the same - reopen to check. | 85 | # and the disk state should be the same - reopen to check. |
302 | 86 | wt = wt.controldir.open_workingtree() | 86 | wt = wt.controldir.open_workingtree() |
304 | 87 | self.assertEqual(wt.path2id('file'), None) | 87 | self.assertFalse(wt.is_versioned('file')) |
305 | 88 | 88 | ||
306 | 89 | def test_add_dot_from_root(self): | 89 | def test_add_dot_from_root(self): |
307 | 90 | """Test adding . from the root of the tree.""" | 90 | """Test adding . from the root of the tree.""" |
308 | @@ -93,7 +93,7 @@ | |||
309 | 93 | wt = self.make_branch_and_tree('.') | 93 | wt = self.make_branch_and_tree('.') |
310 | 94 | wt.smart_add((u".",)) | 94 | wt.smart_add((u".",)) |
311 | 95 | for path in paths: | 95 | for path in paths: |
313 | 96 | self.assertNotEqual(wt.path2id(path), None) | 96 | self.assertTrue(wt.is_versioned(path)) |
314 | 97 | 97 | ||
315 | 98 | def test_skip_nested_trees(self): | 98 | def test_skip_nested_trees(self): |
316 | 99 | """Test smart-adding a nested tree ignors it and warns.""" | 99 | """Test smart-adding a nested tree ignors it and warns.""" |
317 | @@ -104,7 +104,7 @@ | |||
318 | 104 | warnings.append(args[0] % args[1:]) | 104 | warnings.append(args[0] % args[1:]) |
319 | 105 | self.overrideAttr(trace, 'warning', warning) | 105 | self.overrideAttr(trace, 'warning', warning) |
320 | 106 | wt.smart_add((u".",)) | 106 | wt.smart_add((u".",)) |
322 | 107 | self.assertIs(wt.path2id("nested"), None) | 107 | self.assertFalse(wt.is_versioned("nested")) |
323 | 108 | self.assertEqual( | 108 | self.assertEqual( |
324 | 109 | ['skipping nested tree %r' % nested_wt.basedir], warnings) | 109 | ['skipping nested tree %r' % nested_wt.basedir], warnings) |
325 | 110 | 110 | ||
326 | @@ -115,7 +115,7 @@ | |||
327 | 115 | wt = self.make_branch_and_tree('.') | 115 | wt = self.make_branch_and_tree('.') |
328 | 116 | wt.smart_add((u".",)) | 116 | wt.smart_add((u".",)) |
329 | 117 | for path in paths: | 117 | for path in paths: |
331 | 118 | self.assertNotEqual(wt.path2id(path), None) | 118 | self.assertTrue(wt.is_versioned(path)) |
332 | 119 | 119 | ||
333 | 120 | def test_add_tree_from_above_tree(self): | 120 | def test_add_tree_from_above_tree(self): |
334 | 121 | """Test adding a tree from above the tree.""" | 121 | """Test adding a tree from above the tree.""" |
335 | @@ -126,7 +126,7 @@ | |||
336 | 126 | wt = self.make_branch_and_tree('branch') | 126 | wt = self.make_branch_and_tree('branch') |
337 | 127 | wt.smart_add(("branch",)) | 127 | wt.smart_add(("branch",)) |
338 | 128 | for path in paths: | 128 | for path in paths: |
340 | 129 | self.assertNotEqual(wt.path2id(path), None) | 129 | self.assertTrue(wt.is_versioned(path)) |
341 | 130 | 130 | ||
342 | 131 | def test_add_above_tree_preserves_tree(self): | 131 | def test_add_above_tree_preserves_tree(self): |
343 | 132 | """Test nested trees are not affect by an add above them.""" | 132 | """Test nested trees are not affect by an add above them.""" |
344 | @@ -144,13 +144,13 @@ | |||
345 | 144 | child_tree = self.make_branch_and_tree('original/child') | 144 | child_tree = self.make_branch_and_tree('original/child') |
346 | 145 | wt.smart_add((".",)) | 145 | wt.smart_add((".",)) |
347 | 146 | for path in paths: | 146 | for path in paths: |
350 | 147 | self.assertNotEqual((path, wt.path2id(path)), | 147 | self.assertNotEqual((path, wt.is_versioned(path)), |
351 | 148 | (path, None)) | 148 | (path, False)) |
352 | 149 | for path in full_child_paths: | 149 | for path in full_child_paths: |
355 | 150 | self.assertEqual((path, wt.path2id(path)), | 150 | self.assertEqual((path, wt.is_versioned(path)), |
356 | 151 | (path, None)) | 151 | (path, False)) |
357 | 152 | for path in child_paths: | 152 | for path in child_paths: |
359 | 153 | self.assertEqual(child_tree.path2id(path), None) | 153 | self.assertFalse(child_tree.is_versioned(path)) |
360 | 154 | 154 | ||
361 | 155 | def test_add_paths(self): | 155 | def test_add_paths(self): |
362 | 156 | """Test smart-adding a list of paths.""" | 156 | """Test smart-adding a list of paths.""" |
363 | @@ -159,7 +159,7 @@ | |||
364 | 159 | wt = self.make_branch_and_tree('.') | 159 | wt = self.make_branch_and_tree('.') |
365 | 160 | wt.smart_add(paths) | 160 | wt.smart_add(paths) |
366 | 161 | for path in paths: | 161 | for path in paths: |
368 | 162 | self.assertNotEqual(wt.path2id(path), None) | 162 | self.assertTrue(wt.is_versioned(path)) |
369 | 163 | 163 | ||
370 | 164 | def test_add_ignored_nested_paths(self): | 164 | def test_add_ignored_nested_paths(self): |
371 | 165 | """Test smart-adding a list of paths which includes ignored ones.""" | 165 | """Test smart-adding a list of paths which includes ignored ones.""" |
372 | @@ -170,8 +170,7 @@ | |||
373 | 170 | self.build_tree(tree_shape) | 170 | self.build_tree(tree_shape) |
374 | 171 | wt.smart_add(add_paths) | 171 | wt.smart_add(add_paths) |
375 | 172 | for path in expected_paths: | 172 | for path in expected_paths: |
378 | 173 | self.assertNotEqual(wt.path2id(path), None, | 173 | self.assertTrue(wt.is_versioned(path), "No id added for %s" % path) |
377 | 174 | "No id added for %s" % path) | ||
379 | 175 | 174 | ||
380 | 176 | def test_add_non_existant(self): | 175 | def test_add_non_existant(self): |
381 | 177 | """Test smart-adding a file that does not exist.""" | 176 | """Test smart-adding a file that does not exist.""" |
382 | @@ -206,10 +205,10 @@ | |||
383 | 206 | wt.smart_add(['file1', 'file2', 'dir1', 'dir2']) | 205 | wt.smart_add(['file1', 'file2', 'dir1', 'dir2']) |
384 | 207 | 206 | ||
385 | 208 | for path in added_paths: | 207 | for path in added_paths: |
387 | 209 | self.assertNotEqual(None, wt.path2id(path.rstrip('/')), | 208 | self.assertTrue(wt.is_versioned(path.rstrip('/')), |
388 | 210 | 'Failed to add path: %s' % (path,)) | 209 | 'Failed to add path: %s' % (path,)) |
389 | 211 | for path in not_added: | 210 | for path in not_added: |
391 | 212 | self.assertEqual(None, wt.path2id(path.rstrip('/')), | 211 | self.assertFalse(wt.is_versioned(path.rstrip('/')), |
392 | 213 | 'Accidentally added path: %s' % (path,)) | 212 | 'Accidentally added path: %s' % (path,)) |
393 | 214 | 213 | ||
394 | 215 | def test_add_file_in_unknown_dir(self): | 214 | def test_add_file_in_unknown_dir(self): |
395 | 216 | 215 | ||
396 | === modified file 'breezy/tests/per_workingtree/test_symlinks.py' | |||
397 | --- breezy/tests/per_workingtree/test_symlinks.py 2017-11-12 20:07:32 +0000 | |||
398 | +++ breezy/tests/per_workingtree/test_symlinks.py 2018-02-15 22:17:55 +0000 | |||
399 | @@ -42,8 +42,8 @@ | |||
400 | 42 | ('tree/link@', 'target'), | 42 | ('tree/link@', 'target'), |
401 | 43 | ]) | 43 | ]) |
402 | 44 | tree.smart_add(['tree/link']) | 44 | tree.smart_add(['tree/link']) |
405 | 45 | self.assertIsNot(None, tree.path2id('link')) | 45 | self.assertTrue(tree.is_versioned('link')) |
406 | 46 | self.assertIs(None, tree.path2id('target')) | 46 | self.assertFalse(tree.is_versioned('target')) |
407 | 47 | self.assertEqual('symlink', tree.kind('link')) | 47 | self.assertEqual('symlink', tree.kind('link')) |
408 | 48 | 48 | ||
409 | 49 | def test_smart_add_symlink_pointing_outside(self): | 49 | def test_smart_add_symlink_pointing_outside(self): |
410 | @@ -52,8 +52,8 @@ | |||
411 | 52 | ('tree/link@', '../../../../target'), | 52 | ('tree/link@', '../../../../target'), |
412 | 53 | ]) | 53 | ]) |
413 | 54 | tree.smart_add(['tree/link']) | 54 | tree.smart_add(['tree/link']) |
416 | 55 | self.assertIsNot(None, tree.path2id('link')) | 55 | self.assertTrue(tree.is_versioned('link')) |
417 | 56 | self.assertIs(None, tree.path2id('target')) | 56 | self.assertFalse(tree.is_versioned('target')) |
418 | 57 | self.assertEqual('symlink', tree.kind('link')) | 57 | self.assertEqual('symlink', tree.kind('link')) |
419 | 58 | 58 | ||
420 | 59 | def test_add_file_under_symlink(self): | 59 | def test_add_file_under_symlink(self): |
421 | @@ -70,10 +70,10 @@ | |||
422 | 70 | ([u'dir', u'dir/file'], {})) | 70 | ([u'dir', u'dir/file'], {})) |
423 | 71 | # should add the actual parent directory, not the apparent parent | 71 | # should add the actual parent directory, not the apparent parent |
424 | 72 | # (which is actually a symlink) | 72 | # (which is actually a symlink) |
429 | 73 | self.assertTrue(tree.path2id('dir/file')) | 73 | self.assertTrue(tree.is_versioned('dir/file')) |
430 | 74 | self.assertTrue(tree.path2id('dir')) | 74 | self.assertTrue(tree.is_versioned('dir')) |
431 | 75 | self.assertIs(None, tree.path2id('link')) | 75 | self.assertFalse(tree.is_versioned('link')) |
432 | 76 | self.assertIs(None, tree.path2id('link/file')) | 76 | self.assertFalse(tree.is_versioned('link/file')) |
433 | 77 | 77 | ||
434 | 78 | 78 | ||
435 | 79 | class TestKindChanges(TestCaseWithWorkingTree): | 79 | class TestKindChanges(TestCaseWithWorkingTree): |
436 | 80 | 80 | ||
437 | === modified file 'breezy/tests/per_workingtree/test_unversion.py' | |||
438 | --- breezy/tests/per_workingtree/test_unversion.py 2017-12-22 16:24:08 +0000 | |||
439 | +++ breezy/tests/per_workingtree/test_unversion.py 2018-02-15 22:17:55 +0000 | |||
440 | @@ -61,7 +61,9 @@ | |||
441 | 61 | c_id = tree.path2id('c') | 61 | c_id = tree.path2id('c') |
442 | 62 | # within a lock unversion should take effect | 62 | # within a lock unversion should take effect |
443 | 63 | tree.lock_write() | 63 | tree.lock_write() |
444 | 64 | self.assertTrue(tree.is_versioned('a')) | ||
445 | 64 | tree.unversion(['a', 'b']) | 65 | tree.unversion(['a', 'b']) |
446 | 66 | self.assertFalse(tree.is_versioned('a')) | ||
447 | 65 | self.assertFalse(tree.has_id(a_id)) | 67 | self.assertFalse(tree.has_id(a_id)) |
448 | 66 | self.assertFalse(tree.has_id(b_id)) | 68 | self.assertFalse(tree.has_id(b_id)) |
449 | 67 | self.assertTrue(tree.has_id(c_id)) | 69 | self.assertTrue(tree.has_id(c_id)) |
450 | @@ -111,8 +113,7 @@ | |||
451 | 111 | b_id = tree.path2id('a/b') | 113 | b_id = tree.path2id('a/b') |
452 | 112 | c_id = tree.path2id('a/c') | 114 | c_id = tree.path2id('a/c') |
453 | 113 | d_id = tree.path2id('d') | 115 | d_id = tree.path2id('d') |
456 | 114 | tree.lock_write() | 116 | with tree.lock_write(): |
455 | 115 | try: | ||
457 | 116 | tree.unversion(['a/b', 'a']) | 117 | tree.unversion(['a/b', 'a']) |
458 | 117 | self.assertFalse(tree.has_id(a_id)) | 118 | self.assertFalse(tree.has_id(a_id)) |
459 | 118 | self.assertFalse(tree.has_id(b_id)) | 119 | self.assertFalse(tree.has_id(b_id)) |
460 | @@ -123,8 +124,6 @@ | |||
461 | 123 | self.assertTrue(tree.has_filename('a/b')) | 124 | self.assertTrue(tree.has_filename('a/b')) |
462 | 124 | self.assertTrue(tree.has_filename('a/c')) | 125 | self.assertTrue(tree.has_filename('a/c')) |
463 | 125 | self.assertTrue(tree.has_filename('d')) | 126 | self.assertTrue(tree.has_filename('d')) |
464 | 126 | finally: | ||
465 | 127 | tree.unlock() | ||
466 | 128 | 127 | ||
467 | 129 | def test_unversion_renamed(self): | 128 | def test_unversion_renamed(self): |
468 | 130 | tree = self.make_branch_and_tree('a') | 129 | tree = self.make_branch_and_tree('a') |
469 | 131 | 130 | ||
470 | === modified file 'breezy/tests/per_workingtree/test_workingtree.py' | |||
471 | --- breezy/tests/per_workingtree/test_workingtree.py 2018-01-15 06:07:39 +0000 | |||
472 | +++ breezy/tests/per_workingtree/test_workingtree.py 2018-02-15 22:17:55 +0000 | |||
473 | @@ -420,9 +420,9 @@ | |||
474 | 420 | self.assertFalse(cloned_transport.has('deleted')) | 420 | self.assertFalse(cloned_transport.has('deleted')) |
475 | 421 | self.assertTrue(cloned_transport.has('added')) | 421 | self.assertTrue(cloned_transport.has('added')) |
476 | 422 | self.assertFalse(cloned_transport.has('notadded')) | 422 | self.assertFalse(cloned_transport.has('notadded')) |
480 | 423 | self.assertIsNot(None, cloned.path2id('added')) | 423 | self.assertTrue(cloned.is_versioned('added')) |
481 | 424 | self.assertEqual(None, cloned.path2id('deleted')) | 424 | self.assertFalse(cloned.is_versioned('deleted')) |
482 | 425 | self.assertEqual(None, cloned.path2id('notadded')) | 425 | self.assertFalse(cloned.is_versioned('notadded')) |
483 | 426 | 426 | ||
484 | 427 | def test_basis_tree_returns_last_revision(self): | 427 | def test_basis_tree_returns_last_revision(self): |
485 | 428 | wt = self.make_branch_and_tree('.') | 428 | wt = self.make_branch_and_tree('.') |
486 | @@ -687,15 +687,12 @@ | |||
487 | 687 | # merge_modified stores a map from file id to hash | 687 | # merge_modified stores a map from file id to hash |
488 | 688 | tree = self.make_branch_and_tree('tree') | 688 | tree = self.make_branch_and_tree('tree') |
489 | 689 | self.build_tree_contents([('tree/somefile', 'hello')]) | 689 | self.build_tree_contents([('tree/somefile', 'hello')]) |
492 | 690 | tree.lock_write() | 690 | with tree.lock_write(): |
491 | 691 | try: | ||
493 | 692 | tree.add(['somefile']) | 691 | tree.add(['somefile']) |
494 | 693 | d = {tree.path2id('somefile'): osutils.sha_string('hello')} | 692 | d = {tree.path2id('somefile'): osutils.sha_string('hello')} |
495 | 694 | tree.set_merge_modified(d) | 693 | tree.set_merge_modified(d) |
496 | 695 | mm = tree.merge_modified() | 694 | mm = tree.merge_modified() |
497 | 696 | self.assertEqual(mm, d) | 695 | self.assertEqual(mm, d) |
498 | 697 | finally: | ||
499 | 698 | tree.unlock() | ||
500 | 699 | mm = tree.merge_modified() | 696 | mm = tree.merge_modified() |
501 | 700 | self.assertEqual(mm, d) | 697 | self.assertEqual(mm, d) |
502 | 701 | 698 | ||
503 | @@ -971,7 +968,6 @@ | |||
504 | 971 | 'nonexistant') | 968 | 'nonexistant') |
505 | 972 | self.build_tree(['file']) | 969 | self.build_tree(['file']) |
506 | 973 | tree.add('file') | 970 | tree.add('file') |
507 | 974 | file_id = tree.path2id('file') | ||
508 | 975 | tree.commit('foo') | 971 | tree.commit('foo') |
509 | 976 | tree.remove('file') | 972 | tree.remove('file') |
510 | 977 | self.assertRaises(errors.NoSuchFile, tree.get_file_sha1, | 973 | self.assertRaises(errors.NoSuchFile, tree.get_file_sha1, |
511 | 978 | 974 | ||
512 | === modified file 'breezy/tests/test_bundle.py' | |||
513 | --- breezy/tests/test_bundle.py 2017-11-24 09:25:13 +0000 | |||
514 | +++ breezy/tests/test_bundle.py 2018-02-15 22:17:55 +0000 | |||
515 | @@ -219,14 +219,14 @@ | |||
516 | 219 | self.assertEqual(btree.path2id("grandparent/parent"), "b") | 219 | self.assertEqual(btree.path2id("grandparent/parent"), "b") |
517 | 220 | self.assertEqual(btree.path2id("grandparent/parent/file"), "c") | 220 | self.assertEqual(btree.path2id("grandparent/parent/file"), "c") |
518 | 221 | 221 | ||
522 | 222 | self.assertTrue(btree.path2id("grandparent2") is None) | 222 | self.assertIs(btree.path2id("grandparent2"), None) |
523 | 223 | self.assertTrue(btree.path2id("grandparent2/parent") is None) | 223 | self.assertIs(btree.path2id("grandparent2/parent"), None) |
524 | 224 | self.assertTrue(btree.path2id("grandparent2/parent/file") is None) | 224 | self.assertIs(btree.path2id("grandparent2/parent/file"), None) |
525 | 225 | 225 | ||
526 | 226 | btree.note_rename("grandparent", "grandparent2") | 226 | btree.note_rename("grandparent", "grandparent2") |
530 | 227 | self.assertTrue(btree.old_path("grandparent") is None) | 227 | self.assertIs(btree.old_path("grandparent"), None) |
531 | 228 | self.assertTrue(btree.old_path("grandparent/parent") is None) | 228 | self.assertIs(btree.old_path("grandparent/parent"), None) |
532 | 229 | self.assertTrue(btree.old_path("grandparent/parent/file") is None) | 229 | self.assertIs(btree.old_path("grandparent/parent/file"), None) |
533 | 230 | 230 | ||
534 | 231 | self.assertEqual(btree.id2path("a"), "grandparent2") | 231 | self.assertEqual(btree.id2path("a"), "grandparent2") |
535 | 232 | self.assertEqual(btree.id2path("b"), "grandparent2/parent") | 232 | self.assertEqual(btree.id2path("b"), "grandparent2/parent") |
536 | @@ -351,7 +351,7 @@ | |||
537 | 351 | self.assertEqual(btree.get_file(btree.id2path("c")).read(), "Hello\n") | 351 | self.assertEqual(btree.get_file(btree.id2path("c")).read(), "Hello\n") |
538 | 352 | btree.note_deletion("grandparent/parent/file") | 352 | btree.note_deletion("grandparent/parent/file") |
539 | 353 | self.assertTrue(btree.id2path("c") is None) | 353 | self.assertTrue(btree.id2path("c") is None) |
541 | 354 | self.assertTrue(btree.path2id("grandparent/parent/file") is None) | 354 | self.assertFalse(btree.is_versioned("grandparent/parent/file")) |
542 | 355 | 355 | ||
543 | 356 | def sorted_ids(self, tree): | 356 | def sorted_ids(self, tree): |
544 | 357 | ids = sorted(tree.all_file_ids()) | 357 | ids = sorted(tree.all_file_ids()) |
545 | 358 | 358 | ||
546 | === modified file 'breezy/tests/test_commit.py' | |||
547 | --- breezy/tests/test_commit.py 2017-11-13 22:52:33 +0000 | |||
548 | +++ breezy/tests/test_commit.py 2018-02-15 22:17:55 +0000 | |||
549 | @@ -89,7 +89,6 @@ | |||
550 | 89 | with open('hello', 'w') as f: f.write('hello world') | 89 | with open('hello', 'w') as f: f.write('hello world') |
551 | 90 | wt.add('hello') | 90 | wt.add('hello') |
552 | 91 | rev1 = wt.commit(message='add hello') | 91 | rev1 = wt.commit(message='add hello') |
553 | 92 | file_id = wt.path2id('hello') | ||
554 | 93 | 92 | ||
555 | 94 | with open('hello', 'w') as f: f.write('version 2') | 93 | with open('hello', 'w') as f: f.write('version 2') |
556 | 95 | rev2 = wt.commit(message='commit 2') | 94 | rev2 = wt.commit(message='commit 2') |
557 | @@ -616,12 +615,9 @@ | |||
558 | 616 | tree.remove(['a', 'b']) | 615 | tree.remove(['a', 'b']) |
559 | 617 | tree.commit('removed a', specific_files='a') | 616 | tree.commit('removed a', specific_files='a') |
560 | 618 | basis = tree.basis_tree() | 617 | basis = tree.basis_tree() |
567 | 619 | tree.lock_read() | 618 | with tree.lock_read(): |
568 | 620 | try: | 619 | self.assertFalse(basis.is_versioned('a')) |
569 | 621 | self.assertIs(None, basis.path2id('a')) | 620 | self.assertTrue(basis.is_versioned('b')) |
564 | 622 | self.assertFalse(basis.path2id('b') is None) | ||
565 | 623 | finally: | ||
566 | 624 | tree.unlock() | ||
570 | 625 | 621 | ||
571 | 626 | def test_commit_saves_1ms_timestamp(self): | 622 | def test_commit_saves_1ms_timestamp(self): |
572 | 627 | """Passing in a timestamp is saved with 1ms resolution""" | 623 | """Passing in a timestamp is saved with 1ms resolution""" |
573 | 628 | 624 | ||
574 | === modified file 'breezy/tests/test_inv.py' | |||
575 | --- breezy/tests/test_inv.py 2018-01-14 05:14:06 +0000 | |||
576 | +++ breezy/tests/test_inv.py 2018-02-15 22:17:55 +0000 | |||
577 | @@ -622,7 +622,7 @@ | |||
578 | 622 | inv.add(file1) | 622 | inv.add(file1) |
579 | 623 | delta = [(u'path', None, 'file-id', None)] | 623 | delta = [(u'path', None, 'file-id', None)] |
580 | 624 | res_inv = self.apply_delta(self, inv, delta, invalid_delta=False) | 624 | res_inv = self.apply_delta(self, inv, delta, invalid_delta=False) |
582 | 625 | self.assertEqual(None, res_inv.path2id('path')) | 625 | self.assertFalse(res_inv.is_versioned('path')) |
583 | 626 | self.assertRaises(errors.NoSuchId, res_inv.id2path, 'file-id') | 626 | self.assertRaises(errors.NoSuchId, res_inv.id2path, 'file-id') |
584 | 627 | 627 | ||
585 | 628 | def test_rename_file(self): | 628 | def test_rename_file(self): |
586 | @@ -632,7 +632,7 @@ | |||
587 | 632 | file2 = self.make_file_ie(name='path2', parent_id=inv.root.file_id) | 632 | file2 = self.make_file_ie(name='path2', parent_id=inv.root.file_id) |
588 | 633 | delta = [(u'path', 'path2', 'file-id', file2)] | 633 | delta = [(u'path', 'path2', 'file-id', file2)] |
589 | 634 | res_inv = self.apply_delta(self, inv, delta, invalid_delta=False) | 634 | res_inv = self.apply_delta(self, inv, delta, invalid_delta=False) |
591 | 635 | self.assertEqual(None, res_inv.path2id('path')) | 635 | self.assertFalse(res_inv.is_versioned('path')) |
592 | 636 | self.assertEqual('file-id', res_inv.path2id('path2')) | 636 | self.assertEqual('file-id', res_inv.path2id('path2')) |
593 | 637 | 637 | ||
594 | 638 | def test_replaced_at_new_path(self): | 638 | def test_replaced_at_new_path(self): |
595 | @@ -676,7 +676,7 @@ | |||
596 | 676 | res_inv = self.apply_delta(self, inv, delta, invalid_delta=False) | 676 | res_inv = self.apply_delta(self, inv, delta, invalid_delta=False) |
597 | 677 | # The file should be accessible under the new path | 677 | # The file should be accessible under the new path |
598 | 678 | self.assertEqual('file-id-1', res_inv.path2id('dir2/name1')) | 678 | self.assertEqual('file-id-1', res_inv.path2id('dir2/name1')) |
600 | 679 | self.assertEqual(None, res_inv.path2id('dir2/name2')) | 679 | self.assertFalse(res_inv.is_versioned('dir2/name2')) |
601 | 680 | self.assertEqual('file-id-2', res_inv.path2id('name2')) | 680 | self.assertEqual('file-id-2', res_inv.path2id('name2')) |
602 | 681 | 681 | ||
603 | 682 | def test_is_root(self): | 682 | def test_is_root(self): |
604 | 683 | 683 | ||
605 | === modified file 'breezy/tests/test_merge.py' | |||
606 | --- breezy/tests/test_merge.py 2017-11-24 09:25:13 +0000 | |||
607 | +++ breezy/tests/test_merge.py 2018-02-15 22:17:55 +0000 | |||
608 | @@ -2300,7 +2300,7 @@ | |||
609 | 2300 | wt.set_parent_ids(['D-id']) | 2300 | wt.set_parent_ids(['D-id']) |
610 | 2301 | wt.branch.set_last_revision_info(3, 'D-id') | 2301 | wt.branch.set_last_revision_info(3, 'D-id') |
611 | 2302 | wt.revert() | 2302 | wt.revert() |
613 | 2303 | self.assertIs(None, wt.path2id('foo')) | 2303 | self.assertFalse(wt.is_versioned('foo')) |
614 | 2304 | conflicts = wt.merge_from_branch(wt.branch, to_revision='F-id') | 2304 | conflicts = wt.merge_from_branch(wt.branch, to_revision='F-id') |
615 | 2305 | self.assertEqual(0, conflicts) | 2305 | self.assertEqual(0, conflicts) |
616 | 2306 | self.assertEqual('foo-id', wt.path2id('foo')) | 2306 | self.assertEqual('foo-id', wt.path2id('foo')) |
617 | 2307 | 2307 | ||
618 | === modified file 'breezy/tests/test_transform.py' | |||
619 | --- breezy/tests/test_transform.py 2017-11-12 20:07:32 +0000 | |||
620 | +++ breezy/tests/test_transform.py 2018-02-15 22:17:55 +0000 | |||
621 | @@ -920,7 +920,7 @@ | |||
622 | 920 | self.assertEqual([NonDirectoryParent('Created directory', 'parent.new', | 920 | self.assertEqual([NonDirectoryParent('Created directory', 'parent.new', |
623 | 921 | 'parent-id')], cooked_conflicts) | 921 | 'parent-id')], cooked_conflicts) |
624 | 922 | tt.apply() | 922 | tt.apply() |
626 | 923 | self.assertEqual(None, self.wt.path2id('parent')) | 923 | self.assertFalse(self.wt.is_versioned('parent')) |
627 | 924 | self.assertEqual('parent-id', self.wt.path2id('parent.new')) | 924 | self.assertEqual('parent-id', self.wt.path2id('parent.new')) |
628 | 925 | 925 | ||
629 | 926 | def test_resolve_conflicts_wrong_new_parent_kind(self): | 926 | def test_resolve_conflicts_wrong_new_parent_kind(self): |
630 | @@ -936,7 +936,7 @@ | |||
631 | 936 | self.assertEqual({('non-directory parent', 'Created directory', | 936 | self.assertEqual({('non-directory parent', 'Created directory', |
632 | 937 | 'new-3')}, raw_conflicts) | 937 | 'new-3')}, raw_conflicts) |
633 | 938 | tt.apply() | 938 | tt.apply() |
635 | 939 | self.assertEqual(None, self.wt.path2id('parent')) | 939 | self.assertFalse(self.wt.is_versioned('parent')) |
636 | 940 | self.assertEqual('parent-id', self.wt.path2id('parent.new')) | 940 | self.assertEqual('parent-id', self.wt.path2id('parent.new')) |
637 | 941 | 941 | ||
638 | 942 | def test_resolve_conflicts_wrong_parent_kind_unversioned(self): | 942 | def test_resolve_conflicts_wrong_parent_kind_unversioned(self): |
639 | @@ -950,8 +950,8 @@ | |||
640 | 950 | tt.create_file('contents', parent_id) | 950 | tt.create_file('contents', parent_id) |
641 | 951 | resolve_conflicts(tt) | 951 | resolve_conflicts(tt) |
642 | 952 | tt.apply() | 952 | tt.apply() |
645 | 953 | self.assertIs(None, self.wt.path2id('parent')) | 953 | self.assertFalse(self.wt.is_versioned('parent')) |
646 | 954 | self.assertIs(None, self.wt.path2id('parent.new')) | 954 | self.assertFalse(self.wt.is_versioned('parent.new')) |
647 | 955 | 955 | ||
648 | 956 | def test_resolve_conflicts_missing_parent(self): | 956 | def test_resolve_conflicts_missing_parent(self): |
649 | 957 | wt = self.make_branch_and_tree('.') | 957 | wt = self.make_branch_and_tree('.') |
650 | @@ -2896,7 +2896,7 @@ | |||
651 | 2896 | preview.unversion_file(preview.trans_id_file_id('deleted-id')) | 2896 | preview.unversion_file(preview.trans_id_file_id('deleted-id')) |
652 | 2897 | preview_tree = preview.get_preview_tree() | 2897 | preview_tree = preview.get_preview_tree() |
653 | 2898 | self.assertEqual('unchanged-id', preview_tree.path2id('unchanged')) | 2898 | self.assertEqual('unchanged-id', preview_tree.path2id('unchanged')) |
655 | 2899 | self.assertIs(None, preview_tree.path2id('deleted')) | 2899 | self.assertFalse(preview_tree.is_versioned('deleted')) |
656 | 2900 | 2900 | ||
657 | 2901 | def test_path2id_created(self): | 2901 | def test_path2id_created(self): |
658 | 2902 | tree = self.make_branch_and_tree('tree') | 2902 | tree = self.make_branch_and_tree('tree') |
659 | @@ -2921,7 +2921,7 @@ | |||
660 | 2921 | preview.adjust_path('child', new_parent, | 2921 | preview.adjust_path('child', new_parent, |
661 | 2922 | preview.trans_id_file_id('child-id')) | 2922 | preview.trans_id_file_id('child-id')) |
662 | 2923 | preview_tree = preview.get_preview_tree() | 2923 | preview_tree = preview.get_preview_tree() |
664 | 2924 | self.assertIs(None, preview_tree.path2id('old_parent/child')) | 2924 | self.assertFalse(preview_tree.is_versioned('old_parent/child')) |
665 | 2925 | self.assertEqual('child-id', preview_tree.path2id('new_parent/child')) | 2925 | self.assertEqual('child-id', preview_tree.path2id('new_parent/child')) |
666 | 2926 | 2926 | ||
667 | 2927 | def test_path2id_renamed_parent(self): | 2927 | def test_path2id_renamed_parent(self): |
668 | @@ -2934,7 +2934,7 @@ | |||
669 | 2934 | preview.adjust_path('new_name', preview.root, | 2934 | preview.adjust_path('new_name', preview.root, |
670 | 2935 | preview.trans_id_file_id('parent-id')) | 2935 | preview.trans_id_file_id('parent-id')) |
671 | 2936 | preview_tree = preview.get_preview_tree() | 2936 | preview_tree = preview.get_preview_tree() |
673 | 2937 | self.assertIs(None, preview_tree.path2id('old_name/child')) | 2937 | self.assertFalse(preview_tree.is_versioned('old_name/child')) |
674 | 2938 | self.assertEqual('child-id', preview_tree.path2id('new_name/child')) | 2938 | self.assertEqual('child-id', preview_tree.path2id('new_name/child')) |
675 | 2939 | 2939 | ||
676 | 2940 | def assertMatchingIterEntries(self, tt, specific_file_ids=None): | 2940 | def assertMatchingIterEntries(self, tt, specific_file_ids=None): |
677 | 2941 | 2941 | ||
678 | === modified file 'breezy/tests/test_uncommit.py' | |||
679 | --- breezy/tests/test_uncommit.py 2017-06-10 00:17:06 +0000 | |||
680 | +++ breezy/tests/test_uncommit.py 2018-02-15 22:17:55 +0000 | |||
681 | @@ -51,7 +51,7 @@ | |||
682 | 51 | # The file should not be removed | 51 | # The file should not be removed |
683 | 52 | self.assertPathExists('tree/two') | 52 | self.assertPathExists('tree/two') |
684 | 53 | # And it should still be listed as added | 53 | # And it should still be listed as added |
686 | 54 | self.assertIsNot(None, tree.path2id('two')) | 54 | self.assertTrue(tree.is_versioned('two')) |
687 | 55 | 55 | ||
688 | 56 | def test_uncommit_bound(self): | 56 | def test_uncommit_bound(self): |
689 | 57 | tree, history = self.make_linear_tree() | 57 | tree, history = self.make_linear_tree() |
690 | 58 | 58 | ||
691 | === modified file 'breezy/tests/test_upstream_import.py' | |||
692 | --- breezy/tests/test_upstream_import.py 2017-11-12 20:07:32 +0000 | |||
693 | +++ breezy/tests/test_upstream_import.py 2018-02-15 22:17:55 +0000 | |||
694 | @@ -233,8 +233,8 @@ | |||
695 | 233 | tree.lock_write() | 233 | tree.lock_write() |
696 | 234 | try: | 234 | try: |
697 | 235 | importer(tree, archive_file) | 235 | importer(tree, archive_file) |
700 | 236 | self.assertTrue(tree.path2id('README') is not None) | 236 | self.assertTrue(tree.is_versioned('README')) |
701 | 237 | self.assertTrue(tree.path2id('FEEDME') is not None) | 237 | self.assertTrue(tree.is_versioned('FEEDME')) |
702 | 238 | self.assertTrue(os.path.isfile(tree.abspath('README'))) | 238 | self.assertTrue(os.path.isfile(tree.abspath('README'))) |
703 | 239 | self.assertEqual(tree.stored_kind('README'), 'file') | 239 | self.assertEqual(tree.stored_kind('README'), 'file') |
704 | 240 | self.assertEqual(tree.stored_kind('FEEDME'), 'file') | 240 | self.assertEqual(tree.stored_kind('FEEDME'), 'file') |
705 | @@ -246,7 +246,7 @@ | |||
706 | 246 | warnings.simplefilter('ignore') | 246 | warnings.simplefilter('ignore') |
707 | 247 | archive_file = self.make_archive2(builder, subdir) | 247 | archive_file = self.make_archive2(builder, subdir) |
708 | 248 | importer(tree, archive_file) | 248 | importer(tree, archive_file) |
710 | 249 | self.assertTrue(tree.path2id('README') is not None) | 249 | self.assertTrue(tree.is_versioned('README')) |
711 | 250 | # Ensure the second version of the file is used. | 250 | # Ensure the second version of the file is used. |
712 | 251 | self.assertEqual(tree.get_file_text('README'), 'Wow?') | 251 | self.assertEqual(tree.get_file_text('README'), 'Wow?') |
713 | 252 | self.assertTrue(not os.path.exists(tree.abspath('FEEDME'))) | 252 | self.assertTrue(not os.path.exists(tree.abspath('FEEDME'))) |
714 | @@ -258,13 +258,13 @@ | |||
715 | 258 | tar_file = self.make_messed_tar() | 258 | tar_file = self.make_messed_tar() |
716 | 259 | tree = BzrDir.create_standalone_workingtree('tree') | 259 | tree = BzrDir.create_standalone_workingtree('tree') |
717 | 260 | import_tar(tree, tar_file) | 260 | import_tar(tree, tar_file) |
719 | 261 | self.assertTrue(tree.path2id('project-0.1/README') is not None) | 261 | self.assertTrue(tree.is_versioned('project-0.1/README')) |
720 | 262 | 262 | ||
721 | 263 | def test_untar_gzip(self): | 263 | def test_untar_gzip(self): |
722 | 264 | tar_file = self.make_tar(mode='w:gz') | 264 | tar_file = self.make_tar(mode='w:gz') |
723 | 265 | tree = BzrDir.create_standalone_workingtree('tree') | 265 | tree = BzrDir.create_standalone_workingtree('tree') |
724 | 266 | import_tar(tree, tar_file) | 266 | import_tar(tree, tar_file) |
726 | 267 | self.assertTrue(tree.path2id('README') is not None) | 267 | self.assertTrue(tree.is_versioned('README')) |
727 | 268 | 268 | ||
728 | 269 | def test_no_crash_with_bzrdir(self): | 269 | def test_no_crash_with_bzrdir(self): |
729 | 270 | tar_file = self.make_tar_with_bzrdir() | 270 | tar_file = self.make_tar_with_bzrdir() |
730 | 271 | 271 | ||
731 | === modified file 'breezy/tests/test_workingtree_4.py' | |||
732 | --- breezy/tests/test_workingtree_4.py 2017-11-19 18:35:20 +0000 | |||
733 | +++ breezy/tests/test_workingtree_4.py 2018-02-15 22:17:55 +0000 | |||
734 | @@ -303,7 +303,7 @@ | |||
735 | 303 | state.update_basis_by_delta = log_update_basis_by_delta | 303 | state.update_basis_by_delta = log_update_basis_by_delta |
736 | 304 | basis = tree.basis_tree() | 304 | basis = tree.basis_tree() |
737 | 305 | self.assertEqual('a-id', basis.path2id('a')) | 305 | self.assertEqual('a-id', basis.path2id('a')) |
739 | 306 | self.assertEqual(None, basis.path2id('b')) | 306 | self.assertFalse(basis.is_versioned('b')) |
740 | 307 | def fail_set_parent_trees(trees, ghosts): | 307 | def fail_set_parent_trees(trees, ghosts): |
741 | 308 | raise AssertionError('dirstate.set_parent_trees() was called') | 308 | raise AssertionError('dirstate.set_parent_trees() was called') |
742 | 309 | state.set_parent_trees = fail_set_parent_trees | 309 | state.set_parent_trees = fail_set_parent_trees |
743 | @@ -341,7 +341,7 @@ | |||
744 | 341 | # Re-open with the new reference | 341 | # Re-open with the new reference |
745 | 342 | wt = wt.controldir.open_workingtree() | 342 | wt = wt.controldir.open_workingtree() |
746 | 343 | wt.set_parent_trees([('C', b_c.repository.revision_tree('C'))]) | 343 | wt.set_parent_trees([('C', b_c.repository.revision_tree('C'))]) |
748 | 344 | self.assertEqual(None, wt.basis_tree().path2id('b')) | 344 | self.assertFalse(wt.basis_tree().is_versioned('b')) |
749 | 345 | 345 | ||
750 | 346 | def test_new_dirstate_on_new_lock(self): | 346 | def test_new_dirstate_on_new_lock(self): |
751 | 347 | # until we have detection for when a dirstate can be reused, we | 347 | # until we have detection for when a dirstate can be reused, we |
752 | 348 | 348 | ||
753 | === modified file 'breezy/tree.py' | |||
754 | --- breezy/tree.py 2018-01-12 08:52:43 +0000 | |||
755 | +++ breezy/tree.py 2018-02-15 22:17:55 +0000 | |||
756 | @@ -533,6 +533,14 @@ | |||
757 | 533 | """Return the id for path in this tree.""" | 533 | """Return the id for path in this tree.""" |
758 | 534 | raise NotImplementedError(self.path2id) | 534 | raise NotImplementedError(self.path2id) |
759 | 535 | 535 | ||
760 | 536 | def is_versioned(self, path): | ||
761 | 537 | """Check whether path is versioned. | ||
762 | 538 | |||
763 | 539 | :param path: Path to check | ||
764 | 540 | :return: boolean | ||
765 | 541 | """ | ||
766 | 542 | return (self.path2id(path) is not None) | ||
767 | 543 | |||
768 | 536 | def paths2ids(self, paths, trees=[], require_versioned=True): | 544 | def paths2ids(self, paths, trees=[], require_versioned=True): |
769 | 537 | """Return all the ids that can be reached by walking from paths. | 545 | """Return all the ids that can be reached by walking from paths. |
770 | 538 | 546 | ||
771 | 539 | 547 | ||
772 | === modified file 'breezy/upstream_import.py' | |||
773 | --- breezy/upstream_import.py 2017-09-26 00:55:04 +0000 | |||
774 | +++ breezy/upstream_import.py 2018-02-15 22:17:55 +0000 | |||
775 | @@ -182,7 +182,7 @@ | |||
776 | 182 | 182 | ||
777 | 183 | 183 | ||
778 | 184 | def do_directory(tt, trans_id, tree, relative_path, path): | 184 | def do_directory(tt, trans_id, tree, relative_path, path): |
780 | 185 | if isdir(path) and tree.path2id(relative_path) is not None: | 185 | if isdir(path) and tree.is_versioned(relative_path): |
781 | 186 | tt.cancel_deletion(trans_id) | 186 | tt.cancel_deletion(trans_id) |
782 | 187 | else: | 187 | else: |
783 | 188 | tt.create_directory(trans_id) | 188 | tt.create_directory(trans_id) |
784 | 189 | 189 | ||
785 | === modified file 'breezy/workingtree.py' | |||
786 | --- breezy/workingtree.py 2018-01-15 06:07:39 +0000 | |||
787 | +++ breezy/workingtree.py 2018-02-15 22:17:55 +0000 | |||
788 | @@ -813,7 +813,7 @@ | |||
789 | 813 | # checkout in a subdirectory. This can be avoided by not adding | 813 | # checkout in a subdirectory. This can be avoided by not adding |
790 | 814 | # it. mbp 20070306 | 814 | # it. mbp 20070306 |
791 | 815 | 815 | ||
793 | 816 | def extract(self, file_id, format=None): | 816 | def extract(self, path, file_id=None, format=None): |
794 | 817 | """Extract a subtree from this tree. | 817 | """Extract a subtree from this tree. |
795 | 818 | 818 | ||
796 | 819 | A new branch will be created, relative to the path for this tree. | 819 | A new branch will be created, relative to the path for this tree. |
Looks sensible. Probably work an assert helper for all versioned or similar at some point?