Merge lp:~jelmer/brz/transform into lp:brz/3.1

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz/transform
Merge into: lp:brz/3.1
Diff against target: 1878 lines (+212/-213)
33 files modified
breezy/bzr/inventorytree.py (+5/-1)
breezy/bzr/tests/per_repository_vf/test_fileid_involved.py (+1/-1)
breezy/bzr/tests/test_bundle.py (+13/-13)
breezy/bzr/tests/test_testament.py (+1/-1)
breezy/bzr/workingtree.py (+1/-1)
breezy/conflicts.py (+2/-2)
breezy/git/tree.py (+1/-1)
breezy/git/workingtree.py (+1/-1)
breezy/merge.py (+2/-2)
breezy/mutabletree.py (+2/-2)
breezy/patches.py (+1/-2)
breezy/shelf.py (+3/-3)
breezy/tests/blackbox/test_tags.py (+2/-3)
breezy/tests/per_branch/test_branch.py (+1/-2)
breezy/tests/per_intertree/__init__.py (+1/-2)
breezy/tests/per_intertree/test_compare.py (+1/-1)
breezy/tests/per_merger.py (+1/-1)
breezy/tests/per_tree/__init__.py (+6/-7)
breezy/tests/per_tree/test_path_content_summary.py (+1/-1)
breezy/tests/per_workingtree/test_executable.py (+1/-1)
breezy/tests/per_workingtree/test_nested_specifics.py (+1/-1)
breezy/tests/per_workingtree/test_walkdirs.py (+1/-1)
breezy/tests/per_workingtree/test_workingtree.py (+2/-2)
breezy/tests/test_diff.py (+2/-2)
breezy/tests/test_merge.py (+2/-2)
breezy/tests/test_merge_core.py (+1/-1)
breezy/tests/test_revert.py (+3/-3)
breezy/tests/test_shelf.py (+1/-1)
breezy/tests/test_transform.py (+138/-138)
breezy/tests/test_upstream_import.py (+1/-1)
breezy/transform.py (+3/-3)
breezy/tree.py (+9/-9)
breezy/upstream_import.py (+1/-1)
To merge this branch: bzr merge lp:~jelmer/brz/transform
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+386851@code.launchpad.net

Commit message

Rename MutableTree.get_transform to MutableTree.transform, add Tree.preview_transform.

Description of the change

Rename MutableTree.get_transform to MutableTree.transform, add Tree.preview_transform.

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve
Revision history for this message
The Breezy Bot (the-breezy-bot) wrote :

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'breezy/bzr/inventorytree.py'
2--- breezy/bzr/inventorytree.py 2020-06-24 02:20:23 +0000
3+++ breezy/bzr/inventorytree.py 2020-07-04 03:10:44 +0000
4@@ -324,6 +324,10 @@
5 vf.fallback_versionedfiles.append(base_vf)
6 return last_revision
7
8+ def preview_transform(self, pb=None):
9+ from ..transform import TransformPreview
10+ return TransformPreview(self, pb=pb)
11+
12
13 def find_ids_across_trees(filenames, trees, require_versioned=True):
14 """Find the ids corresponding to specified filenames.
15@@ -505,7 +509,7 @@
16 inventory, new_revid)
17 self.set_parent_trees([(new_revid, rev_tree)])
18
19- def get_transform(self, pb=None):
20+ def transform(self, pb=None):
21 from ..transform import TreeTransform
22 return TreeTransform(self, pb=pb)
23
24
25=== modified file 'breezy/bzr/tests/per_repository_vf/test_fileid_involved.py'
26--- breezy/bzr/tests/per_repository_vf/test_fileid_involved.py 2020-06-10 02:56:53 +0000
27+++ breezy/bzr/tests/per_repository_vf/test_fileid_involved.py 2020-07-04 03:10:44 +0000
28@@ -430,6 +430,6 @@
29 os.chmod() doesn't work on windows. But TreeTransform can mark or
30 unmark a file as executable.
31 """
32- with wt.get_transform() as tt:
33+ with wt.transform() as tt:
34 tt.set_executability(executable, tt.trans_id_tree_path(path))
35 tt.apply()
36
37=== modified file 'breezy/bzr/tests/test_bundle.py'
38--- breezy/bzr/tests/test_bundle.py 2020-06-22 02:48:24 +0000
39+++ breezy/bzr/tests/test_bundle.py 2020-07-04 03:10:44 +0000
40@@ -593,7 +593,7 @@
41 ])
42 self.build_tree_contents([('b1/sub/sub/emptyfile.txt', b''),
43 ('b1/dir/nolastnewline.txt', b'bloop')])
44- tt = self.tree1.get_transform()
45+ tt = self.tree1.transform()
46 tt.new_file('executable', tt.root, [b'#!/bin/sh\n'], b'exe-1', True)
47 tt.apply()
48 # have to fix length of file-id so that we can predictably rewrite
49@@ -613,7 +613,7 @@
50 self.tree1.remove(
51 ['sub/sub/nonempty.txt', 'sub/sub/emptyfile.txt', 'sub/sub'
52 ])
53- tt = self.tree1.get_transform()
54+ tt = self.tree1.transform()
55 trans_id = tt.trans_id_tree_path('executable')
56 tt.set_executability(False, trans_id)
57 tt.apply()
58@@ -674,7 +674,7 @@
59 self.tree1 = self.make_branch_and_tree('b1')
60 self.b1 = self.tree1.branch
61
62- tt = self.tree1.get_transform()
63+ tt = self.tree1.transform()
64 tt.new_symlink(link_name, tt.root, link_target, link_id)
65 tt.apply()
66 self.tree1.commit('add symlink', rev_id=b'l@cset-0-1')
67@@ -685,7 +685,7 @@
68 self.assertEqual(
69 link_target, bund_tree.get_symlink_target(link_name))
70
71- tt = self.tree1.get_transform()
72+ tt = self.tree1.transform()
73 trans_id = tt.trans_id_tree_path(link_name)
74 tt.adjust_path('link2', tt.root, trans_id)
75 tt.delete_contents(trans_id)
76@@ -699,7 +699,7 @@
77 self.assertEqual(new_link_target,
78 bund_tree.get_symlink_target('link2'))
79
80- tt = self.tree1.get_transform()
81+ tt = self.tree1.transform()
82 trans_id = tt.trans_id_tree_path('link2')
83 tt.delete_contents(trans_id)
84 tt.create_symlink('jupiter', trans_id)
85@@ -707,7 +707,7 @@
86 self.tree1.commit('just change symlink target', rev_id=b'l@cset-0-3')
87 bundle = self.get_valid_bundle(b'l@cset-0-2', b'l@cset-0-3')
88
89- tt = self.tree1.get_transform()
90+ tt = self.tree1.transform()
91 trans_id = tt.trans_id_tree_path('link2')
92 tt.delete_contents(trans_id)
93 tt.apply()
94@@ -726,7 +726,7 @@
95 def test_binary_bundle(self):
96 self.tree1 = self.make_branch_and_tree('b1')
97 self.b1 = self.tree1.branch
98- tt = self.tree1.get_transform()
99+ tt = self.tree1.transform()
100
101 # Add
102 tt.new_file('file', tt.root, [
103@@ -738,7 +738,7 @@
104 self.get_valid_bundle(b'null:', b'b@cset-0-1')
105
106 # Delete
107- tt = self.tree1.get_transform()
108+ tt = self.tree1.transform()
109 trans_id = tt.trans_id_tree_path('file')
110 tt.delete_contents(trans_id)
111 tt.apply()
112@@ -746,7 +746,7 @@
113 self.get_valid_bundle(b'b@cset-0-1', b'b@cset-0-2')
114
115 # Rename & modify
116- tt = self.tree1.get_transform()
117+ tt = self.tree1.transform()
118 trans_id = tt.trans_id_tree_path('file2')
119 tt.adjust_path('file3', tt.root, trans_id)
120 tt.delete_contents(trans_id)
121@@ -756,7 +756,7 @@
122 self.get_valid_bundle(b'b@cset-0-2', b'b@cset-0-3')
123
124 # Modify
125- tt = self.tree1.get_transform()
126+ tt = self.tree1.transform()
127 trans_id = tt.trans_id_tree_path('file3')
128 tt.delete_contents(trans_id)
129 tt.create_file([b'\x00file\rcontents'], trans_id)
130@@ -770,12 +770,12 @@
131 def test_last_modified(self):
132 self.tree1 = self.make_branch_and_tree('b1')
133 self.b1 = self.tree1.branch
134- tt = self.tree1.get_transform()
135+ tt = self.tree1.transform()
136 tt.new_file('file', tt.root, [b'file'], b'file')
137 tt.apply()
138 self.tree1.commit('create file', rev_id=b'a@lmod-0-1')
139
140- tt = self.tree1.get_transform()
141+ tt = self.tree1.transform()
142 trans_id = tt.trans_id_tree_path('file')
143 tt.delete_contents(trans_id)
144 tt.create_file([b'file2'], trans_id)
145@@ -783,7 +783,7 @@
146 self.tree1.commit('modify text', rev_id=b'a@lmod-0-2a')
147
148 other = self.get_checkout(b'a@lmod-0-1')
149- tt = other.get_transform()
150+ tt = other.transform()
151 trans_id = tt.trans_id_tree_path('file2')
152 tt.delete_contents(trans_id)
153 tt.create_file([b'file2'], trans_id)
154
155=== modified file 'breezy/bzr/tests/test_testament.py'
156--- breezy/bzr/tests/test_testament.py 2020-06-10 21:13:00 +0000
157+++ breezy/bzr/tests/test_testament.py 2020-07-04 03:10:44 +0000
158@@ -50,7 +50,7 @@
159 ('src/foo.c', b'int main()\n{\n}\n')])
160 self.wt.add(['hello', 'src', 'src/foo.c'],
161 [b'hello-id', b'src-id', b'foo.c-id'])
162- tt = self.wt.get_transform()
163+ tt = self.wt.transform()
164 trans_id = tt.trans_id_tree_path('hello')
165 tt.set_executability(True, trans_id)
166 tt.apply()
167
168=== modified file 'breezy/bzr/workingtree.py'
169--- breezy/bzr/workingtree.py 2020-06-25 21:13:23 +0000
170+++ breezy/bzr/workingtree.py 2020-07-04 03:10:44 +0000
171@@ -174,7 +174,7 @@
172 else:
173 self.case_sensitive = False
174
175- def get_transform(self, pb=None):
176+ def transform(self, pb=None):
177 from ..transform import TreeTransform
178 return TreeTransform(self, pb=pb)
179
180
181=== modified file 'breezy/conflicts.py'
182--- breezy/conflicts.py 2020-06-28 19:58:43 +0000
183+++ breezy/conflicts.py 2020-07-04 03:10:44 +0000
184@@ -459,7 +459,7 @@
185 raise NotImplementedError(self.action_take_other)
186
187 def _resolve_with_cleanups(self, tree, *args, **kwargs):
188- with tree.get_transform() as tt:
189+ with tree.transform() as tt:
190 self._resolve(tt, *args, **kwargs)
191
192
193@@ -796,7 +796,7 @@
194 pass
195
196 def action_take_other(self, tree):
197- with tree.get_transform() as tt:
198+ with tree.transform() as tt:
199 p_tid = tt.trans_id_file_id(self.file_id)
200 parent_tid = tt.get_tree_parent(p_tid)
201 cp_tid = tt.trans_id_file_id(self.conflict_file_id)
202
203=== modified file 'breezy/git/tree.py'
204--- breezy/git/tree.py 2020-06-30 00:50:50 +0000
205+++ breezy/git/tree.py 2020-07-04 03:10:44 +0000
206@@ -1630,7 +1630,7 @@
207 def _live_entry(self, relpath):
208 raise NotImplementedError(self._live_entry)
209
210- def get_transform(self, pb=None):
211+ def transform(self, pb=None):
212 from ..transform import TreeTransform
213 return TreeTransform(self, pb=pb)
214
215
216=== modified file 'breezy/git/workingtree.py'
217--- breezy/git/workingtree.py 2020-06-30 00:50:50 +0000
218+++ breezy/git/workingtree.py 2020-07-04 03:10:44 +0000
219@@ -225,7 +225,7 @@
220 else:
221 self.case_sensitive = False
222
223- def get_transform(self, pb=None):
224+ def transform(self, pb=None):
225 from ..transform import TreeTransform
226 return TreeTransform(self, pb=pb)
227
228
229=== modified file 'breezy/merge.py'
230--- breezy/merge.py 2020-01-25 13:08:09 +0000
231+++ breezy/merge.py 2020-07-04 03:10:44 +0000
232@@ -762,7 +762,7 @@
233 stack.enter_context(self.this_tree.lock_read())
234 stack.enter_context(self.base_tree.lock_read())
235 stack.enter_context(self.other_tree.lock_read())
236- self.tt = self.working_tree.get_transform()
237+ self.tt = self.working_tree.transform()
238 stack.enter_context(self.tt)
239 self._compute_transform()
240 results = self.tt.apply(no_conflicts=True)
241@@ -774,7 +774,7 @@
242
243 def make_preview_transform(self):
244 with self.base_tree.lock_read(), self.other_tree.lock_read():
245- self.tt = transform.TransformPreview(self.working_tree)
246+ self.tt = self.working_tree.preview_transform()
247 self._compute_transform()
248 return self.tt
249
250
251=== modified file 'breezy/mutabletree.py'
252--- breezy/mutabletree.py 2019-06-17 23:01:58 +0000
253+++ breezy/mutabletree.py 2020-07-04 03:10:44 +0000
254@@ -406,9 +406,9 @@
255 """
256 raise NotImplementedError(self.copy_one)
257
258- def get_transform(self, pb=None):
259+ def transform(self, pb=None):
260 """Return a transform object for use with this tree."""
261- raise NotImplementedError(self.get_transform)
262+ raise NotImplementedError(self.transform)
263
264
265 class MutableTreeHooks(hooks.Hooks):
266
267=== modified file 'breezy/patches.py'
268--- breezy/patches.py 2019-12-28 14:10:36 +0000
269+++ breezy/patches.py 2020-07-04 03:10:44 +0000
270@@ -612,8 +612,7 @@
271 self.prefix = prefix
272
273 def __enter__(self):
274- from .transform import TransformPreview
275- self._tt = TransformPreview(self.tree)
276+ self._tt = self.tree.preview_transform()
277 apply_patches(self._tt, self.patches, prefix=self.prefix)
278 return self._tt.get_preview_tree()
279
280
281=== modified file 'breezy/shelf.py'
282--- breezy/shelf.py 2019-06-22 11:16:17 +0000
283+++ breezy/shelf.py 2020-07-04 03:10:44 +0000
284@@ -68,10 +68,10 @@
285 :param file_list: The files to make more similar to the target.
286 """
287 self.work_tree = work_tree
288- self.work_transform = work_tree.get_transform()
289+ self.work_transform = work_tree.transform()
290 try:
291 self.target_tree = target_tree
292- self.shelf_transform = transform.TransformPreview(self.target_tree)
293+ self.shelf_transform = self.target_tree.preview_transform()
294 try:
295 self.renames = {}
296 self.creation = {}
297@@ -365,7 +365,7 @@
298 base_tree = tree.revision_tree(base_revision_id)
299 except errors.NoSuchRevisionInTree:
300 base_tree = tree.branch.repository.revision_tree(base_revision_id)
301- tt = transform.TransformPreview(base_tree)
302+ tt = base_tree.preview_transform()
303 tt.deserialize(records)
304 return klass(tree, base_tree, tt, metadata.get(b'message'))
305
306
307=== modified file 'breezy/tests/blackbox/test_tags.py'
308--- breezy/tests/blackbox/test_tags.py 2020-06-13 02:58:24 +0000
309+++ breezy/tests/blackbox/test_tags.py 2020-07-04 03:10:44 +0000
310@@ -22,7 +22,6 @@
311 lockable_files,
312 lockdir,
313 tag,
314- transform,
315 )
316 from breezy.bzr import (
317 branch as bzrbranch,
318@@ -148,9 +147,9 @@
319 def make_fork(self, branch):
320 fork = branch.create_clone_on_transport(self.get_transport('fork'))
321 self.addCleanup(fork.lock_write().unlock)
322- with transform.TransformPreview(fork.basis_tree()) as tt:
323+ with fork.basis_tree().preview_transform() as tt:
324 tt.commit(fork, message='Commit in fork.', revision_id=b'fork-0')
325- with transform.TransformPreview(fork.basis_tree()) as tt:
326+ with fork.basis_tree().preview_transform() as tt:
327 tt.commit(fork, message='Commit in fork.', revision_id=b'fork-1')
328 return fork
329
330
331=== modified file 'breezy/tests/per_branch/test_branch.py'
332--- breezy/tests/per_branch/test_branch.py 2020-06-10 22:39:06 +0000
333+++ breezy/tests/per_branch/test_branch.py 2020-07-04 03:10:44 +0000
334@@ -28,7 +28,6 @@
335 merge,
336 osutils,
337 urlutils,
338- transform,
339 transport,
340 repository,
341 revision,
342@@ -863,7 +862,7 @@
343
344 def write_shelf(self, shelf_file, message=None):
345 tree = self.branch.repository.revision_tree(revision.NULL_REVISION)
346- with transform.TransformPreview(tree) as tt:
347+ with tree.preview_transform() as tt:
348 shelf.ShelfCreator._write_shelf(
349 shelf_file, tt, revision.NULL_REVISION)
350
351
352=== modified file 'breezy/tests/per_intertree/__init__.py'
353--- breezy/tests/per_intertree/__init__.py 2020-06-22 02:48:24 +0000
354+++ breezy/tests/per_intertree/__init__.py 2020-07-04 03:10:44 +0000
355@@ -30,7 +30,6 @@
356 from breezy.bzr import (
357 inventorytree,
358 )
359-from breezy.transform import TransformPreview
360 from breezy.tests import (
361 default_transport,
362 multiply_tests,
363@@ -111,7 +110,7 @@
364
365
366 def mutable_trees_to_preview_trees(test_case, source, target):
367- preview = TransformPreview(target)
368+ preview = target.preview_transform()
369 test_case.addCleanup(preview.finalize)
370 return source, preview.get_preview_tree()
371
372
373=== modified file 'breezy/tests/per_intertree/test_compare.py'
374--- breezy/tests/per_intertree/test_compare.py 2019-09-22 22:54:48 +0000
375+++ breezy/tests/per_intertree/test_compare.py 2020-07-04 03:10:44 +0000
376@@ -434,7 +434,7 @@
377 self._make_abc_tree(tree)
378 self.build_tree(['d/'], transport=tree.controldir.root_transport)
379 tree.add(['d'], [b'd-id'])
380- tt = tree.get_transform()
381+ tt = tree.transform()
382 trans_id = tt.trans_id_tree_path('b')
383 parent_trans_id = tt.trans_id_tree_path('d')
384 tt.adjust_path('e', parent_trans_id, trans_id)
385
386=== modified file 'breezy/tests/per_merger.py'
387--- breezy/tests/per_merger.py 2019-06-22 12:51:11 +0000
388+++ breezy/tests/per_merger.py 2020-07-04 03:10:44 +0000
389@@ -169,7 +169,7 @@
390 b'e\n', 'test/foo')
391
392 def get_limbodir_deletiondir(self, wt):
393- transform = wt.get_transform()
394+ transform = wt.transform()
395 limbodir = transform._limbodir
396 deletiondir = transform._deletiondir
397 transform.finalize()
398
399=== modified file 'breezy/tests/per_tree/__init__.py'
400--- breezy/tests/per_tree/__init__.py 2019-06-17 23:01:58 +0000
401+++ breezy/tests/per_tree/__init__.py 2020-07-04 03:10:44 +0000
402@@ -39,7 +39,6 @@
403 make_scenario as wt_make_scenario,
404 )
405 from breezy.revisiontree import RevisionTree
406-from breezy.transform import TransformPreview
407 from breezy.tests import (
408 features,
409 )
410@@ -70,7 +69,7 @@
411
412
413 def preview_tree_pre(testcase, tree):
414- tt = TransformPreview(tree)
415+ tt = tree.preview_transform()
416 testcase.addCleanup(tt.finalize)
417 preview_tree = tt.get_preview_tree()
418 preview_tree.set_parent_ids(tree.get_parent_ids())
419@@ -79,7 +78,7 @@
420
421 def preview_tree_post(testcase, tree):
422 basis = tree.basis_tree()
423- tt = TransformPreview(basis)
424+ tt = basis.preview_transform()
425 testcase.addCleanup(tt.finalize)
426 tree.lock_read()
427 testcase.addCleanup(tree.unlock)
428@@ -174,7 +173,7 @@
429 This variation changes the executable flag of b/c to True.
430 """
431 self._make_abc_tree(tree)
432- tt = tree.get_transform()
433+ tt = tree.transform()
434 trans_id = tt.trans_id_tree_path('b/c')
435 tt.set_executability(True, trans_id)
436 tt.apply()
437@@ -206,7 +205,7 @@
438 This variation renames b/c to e, and makes it executable.
439 """
440 self._make_abc_tree(tree)
441- tt = tree.get_transform()
442+ tt = tree.transform()
443 trans_id = tt.trans_id_tree_path('b/c')
444 parent_trans_id = tt.trans_id_tree_path('')
445 tt.adjust_path('e', parent_trans_id, trans_id)
446@@ -222,7 +221,7 @@
447 self._make_abc_tree(tree)
448 self.build_tree(['d/'], transport=tree.controldir.root_transport)
449 tree.add(['d'])
450- tt = tree.get_transform()
451+ tt = tree.transform()
452 trans_id = tt.trans_id_tree_path('b')
453 parent_trans_id = tt.trans_id_tree_path('d')
454 tt.adjust_path('e', parent_trans_id, trans_id)
455@@ -270,7 +269,7 @@
456 ]
457 self.build_tree(paths)
458 tree.add(paths)
459- tt = tree.get_transform()
460+ tt = tree.transform()
461 if symlinks:
462 root_transaction_id = tt.trans_id_tree_path('')
463 tt.new_symlink('symlink',
464
465=== modified file 'breezy/tests/per_tree/test_path_content_summary.py'
466--- breezy/tests/per_tree/test_path_content_summary.py 2019-06-18 00:20:56 +0000
467+++ breezy/tests/per_tree/test_path_content_summary.py 2020-07-04 03:10:44 +0000
468@@ -88,7 +88,7 @@
469 tree = self.make_branch_and_tree('tree')
470 self.build_tree(['tree/path'])
471 tree.add(['path'])
472- with tree.get_transform() as tt:
473+ with tree.transform() as tt:
474 tt.set_executability(True, tt.trans_id_tree_path('path'))
475 tt.apply()
476 summary = self._convert_tree(tree).path_content_summary('path')
477
478=== modified file 'breezy/tests/per_workingtree/test_executable.py'
479--- breezy/tests/per_workingtree/test_executable.py 2019-09-27 02:48:17 +0000
480+++ breezy/tests/per_workingtree/test_executable.py 2020-07-04 03:10:44 +0000
481@@ -32,7 +32,7 @@
482 self.b_id = b"b-20051208024829-849e76f7968d7a86"
483 wt = self.make_branch_and_tree('b1')
484 b = wt.branch
485- tt = wt.get_transform()
486+ tt = wt.transform()
487 tt.new_file('a', tt.root, [b'a test\n'], self.a_id, True)
488 tt.new_file('b', tt.root, [b'b test\n'], self.b_id, False)
489 tt.apply()
490
491=== modified file 'breezy/tests/per_workingtree/test_nested_specifics.py'
492--- breezy/tests/per_workingtree/test_nested_specifics.py 2019-06-17 23:08:34 +0000
493+++ breezy/tests/per_workingtree/test_nested_specifics.py 2020-07-04 03:10:44 +0000
494@@ -37,7 +37,7 @@
495 tree = self.make_branch_and_tree('.')
496 if not isinstance(tree, inventorytree.InventoryTree):
497 raise TestNotApplicable('not an inventory tree')
498- transform = tree.get_transform()
499+ transform = tree.transform()
500 trans_id = transform.new_directory('reference', transform.root,
501 b'subtree-id')
502 transform.set_tree_reference(b'subtree-revision', trans_id)
503
504=== modified file 'breezy/tests/per_workingtree/test_walkdirs.py'
505--- breezy/tests/per_workingtree/test_walkdirs.py 2019-06-17 23:08:34 +0000
506+++ breezy/tests/per_workingtree/test_walkdirs.py 2020-07-04 03:10:44 +0000
507@@ -176,7 +176,7 @@
508 paths = ['file1', 'file2', 'dir1/', 'dir2/']
509 self.build_tree(paths)
510 tree.add(paths)
511- tt = tree.get_transform()
512+ tt = tree.transform()
513 root_transaction_id = tt.trans_id_tree_path('')
514 tt.new_symlink('link1',
515 root_transaction_id, 'link-target', b'link1')
516
517=== modified file 'breezy/tests/per_workingtree/test_workingtree.py'
518--- breezy/tests/per_workingtree/test_workingtree.py 2020-01-19 15:24:07 +0000
519+++ breezy/tests/per_workingtree/test_workingtree.py 2020-07-04 03:10:44 +0000
520@@ -143,9 +143,9 @@
521 ('zz_dir', 'directory'),
522 ], files)
523
524- def test_get_transform(self):
525+ def test_transform(self):
526 tree = self.make_branch_and_tree('tree')
527- with tree.get_transform():
528+ with tree.transform():
529 pass
530
531 def test_list_files_kind_change(self):
532
533=== modified file 'breezy/tests/test_diff.py'
534--- breezy/tests/test_diff.py 2020-05-30 20:10:42 +0000
535+++ breezy/tests/test_diff.py 2020-07-04 03:10:44 +0000
536@@ -562,7 +562,7 @@
537 def test_internal_diff_exec_property(self):
538 tree = self.make_branch_and_tree('tree')
539
540- tt = tree.get_transform()
541+ tt = tree.transform()
542 tt.new_file('a', tt.root, [b'contents\n'], b'a-id', True)
543 tt.new_file('b', tt.root, [b'contents\n'], b'b-id', False)
544 tt.new_file('c', tt.root, [b'contents\n'], b'c-id', True)
545@@ -572,7 +572,7 @@
546 tt.apply()
547 tree.commit('one', rev_id=b'rev-1')
548
549- tt = tree.get_transform()
550+ tt = tree.transform()
551 tt.set_executability(False, tt.trans_id_file_id(b'a-id'))
552 tt.set_executability(True, tt.trans_id_file_id(b'b-id'))
553 tt.set_executability(False, tt.trans_id_file_id(b'c-id'))
554
555=== modified file 'breezy/tests/test_merge.py'
556--- breezy/tests/test_merge.py 2019-07-27 22:47:49 +0000
557+++ breezy/tests/test_merge.py 2020-07-04 03:10:44 +0000
558@@ -146,7 +146,7 @@
559 merger = _mod_merge.Merge3Merger(wt, wt, wt.basis_tree(), other_tree,
560 this_branch=wt.branch,
561 do_merge=False)
562- with transform.TransformPreview(wt) as merger.tt:
563+ with wt.preview_transform() as merger.tt:
564 merger._compute_transform()
565 new_root_id = merger.tt.final_file_id(merger.tt.root)
566 self.assertEqual(wt.path2id(''), new_root_id)
567@@ -2260,7 +2260,7 @@
568 builder.build_snapshot([b'C-id', b'B-id'], [], revision_id=b'E-id')
569 # Have to use a real WT, because BranchBuilder doesn't support exec bit
570 wt = self.get_wt_from_builder(builder)
571- with wt.get_transform() as tt:
572+ with wt.transform() as tt:
573 tt.set_executability(True, tt.trans_id_tree_path('foo'))
574 tt.apply()
575 self.assertTrue(wt.is_executable('foo'))
576
577=== modified file 'breezy/tests/test_merge_core.py'
578--- breezy/tests/test_merge_core.py 2019-06-17 23:01:58 +0000
579+++ breezy/tests/test_merge_core.py 2020-07-04 03:10:44 +0000
580@@ -57,7 +57,7 @@
581 wt.lock_write()
582 wt.set_root_id(self.tree_root)
583 wt.flush()
584- tt = wt.get_transform()
585+ tt = wt.transform()
586 return wt, tt
587 self.base, self.base_tt = wt('base')
588 self.this, self.this_tt = wt('this')
589
590=== modified file 'breezy/tests/test_revert.py'
591--- breezy/tests/test_revert.py 2019-06-29 13:16:26 +0000
592+++ breezy/tests/test_revert.py 2020-07-04 03:10:44 +0000
593@@ -85,7 +85,7 @@
594
595 def tree_with_executable(self):
596 tree = self.make_branch_and_tree('tree')
597- tt = tree.get_transform()
598+ tt = tree.transform()
599 tt.new_file('newfile', tt.root, [b'helooo!'], b'newfile-id', True)
600 tt.apply()
601 with tree.lock_write():
602@@ -95,7 +95,7 @@
603
604 def test_preserve_execute(self):
605 tree = self.tree_with_executable()
606- tt = tree.get_transform()
607+ tt = tree.transform()
608 newfile = tt.trans_id_tree_path('newfile')
609 tt.delete_contents(newfile)
610 tt.create_file([b'Woooorld!'], newfile)
611@@ -111,7 +111,7 @@
612
613 def test_revert_executable(self):
614 tree = self.tree_with_executable()
615- tt = tree.get_transform()
616+ tt = tree.transform()
617 newfile = tt.trans_id_tree_path('newfile')
618 tt.set_executability(False, newfile)
619 tt.apply()
620
621=== modified file 'breezy/tests/test_shelf.py'
622--- breezy/tests/test_shelf.py 2020-06-25 21:13:23 +0000
623+++ breezy/tests/test_shelf.py 2020-07-04 03:10:44 +0000
624@@ -500,7 +500,7 @@
625 parser = pack.ContainerPushParser()
626 with open('shelf', 'rb') as shelf_file:
627 parser.accept_bytes(shelf_file.read())
628- tt = transform.TransformPreview(tree)
629+ tt = tree.preview_transform()
630 self.addCleanup(tt.finalize)
631 records = iter(parser.read_pending_records())
632 # skip revision-id
633
634=== modified file 'breezy/tests/test_transform.py'
635--- breezy/tests/test_transform.py 2020-06-25 21:13:23 +0000
636+++ breezy/tests/test_transform.py 2020-07-04 03:10:44 +0000
637@@ -99,13 +99,13 @@
638 self.wt = self.make_branch_and_tree('.', format='development-subtree')
639 os.chdir('..')
640
641- def get_transform(self):
642+ def transform(self):
643 transform = TreeTransform(self.wt)
644 self.addCleanup(transform.finalize)
645 return transform, transform.root
646
647- def get_transform_for_sha1_test(self):
648- trans, root = self.get_transform()
649+ def transform_for_sha1_test(self):
650+ trans, root = self.transform()
651 self.wt.lock_tree_write()
652 self.addCleanup(self.wt.unlock)
653 contents = [b'just some content\n']
654@@ -115,31 +115,31 @@
655 return trans, root, contents, sha1
656
657 def test_existing_limbo(self):
658- transform, root = self.get_transform()
659+ transform, root = self.transform()
660 limbo_name = transform._limbodir
661 deletion_path = transform._deletiondir
662 os.mkdir(pathjoin(limbo_name, 'hehe'))
663 self.assertRaises(ImmortalLimbo, transform.apply)
664 self.assertRaises(LockError, self.wt.unlock)
665- self.assertRaises(ExistingLimbo, self.get_transform)
666+ self.assertRaises(ExistingLimbo, self.transform)
667 self.assertRaises(LockError, self.wt.unlock)
668 os.rmdir(pathjoin(limbo_name, 'hehe'))
669 os.rmdir(limbo_name)
670 os.rmdir(deletion_path)
671- transform, root = self.get_transform()
672+ transform, root = self.transform()
673 transform.apply()
674
675 def test_existing_pending_deletion(self):
676- transform, root = self.get_transform()
677+ transform, root = self.transform()
678 deletion_path = self._limbodir = urlutils.local_path_from_url(
679 transform._tree._transport.abspath('pending-deletion'))
680 os.mkdir(pathjoin(deletion_path, 'blocking-directory'))
681 self.assertRaises(ImmortalPendingDeletion, transform.apply)
682 self.assertRaises(LockError, self.wt.unlock)
683- self.assertRaises(ExistingPendingDeletion, self.get_transform)
684+ self.assertRaises(ExistingPendingDeletion, self.transform)
685
686 def test_build(self):
687- transform, root = self.get_transform()
688+ transform, root = self.transform()
689 self.wt.lock_tree_write()
690 self.addCleanup(self.wt.unlock)
691 self.assertIs(transform.get_tree_parent(root), ROOT_PARENT)
692@@ -184,7 +184,7 @@
693 transform.finalize()
694
695 def test_apply_informs_tree_of_observed_sha1(self):
696- trans, root, contents, sha1 = self.get_transform_for_sha1_test()
697+ trans, root, contents, sha1 = self.transform_for_sha1_test()
698 trans_id = trans.new_file('file1', root, contents, file_id=b'file1-id',
699 sha1=sha1)
700 calls = []
701@@ -199,7 +199,7 @@
702 calls)
703
704 def test_create_file_caches_sha1(self):
705- trans, root, contents, sha1 = self.get_transform_for_sha1_test()
706+ trans, root, contents, sha1 = self.transform_for_sha1_test()
707 trans_id = trans.create_path('file1', root)
708 trans.create_file(contents, trans_id, sha1=sha1)
709 st_val = osutils.lstat(trans._limbo_name(trans_id))
710@@ -208,7 +208,7 @@
711 self.assertEqualStat(o_st_val, st_val)
712
713 def test__apply_insertions_updates_sha1(self):
714- trans, root, contents, sha1 = self.get_transform_for_sha1_test()
715+ trans, root, contents, sha1 = self.transform_for_sha1_test()
716 trans_id = trans.create_path('file1', root)
717 trans.create_file(contents, trans_id, sha1=sha1)
718 st_val = osutils.lstat(trans._limbo_name(trans_id))
719@@ -229,7 +229,7 @@
720 self.assertNotEqual(st_val.st_mtime, new_st_val.st_mtime)
721
722 def test_new_file_caches_sha1(self):
723- trans, root, contents, sha1 = self.get_transform_for_sha1_test()
724+ trans, root, contents, sha1 = self.transform_for_sha1_test()
725 trans_id = trans.new_file('file1', root, contents, file_id=b'file1-id',
726 sha1=sha1)
727 st_val = osutils.lstat(trans._limbo_name(trans_id))
728@@ -238,7 +238,7 @@
729 self.assertEqualStat(o_st_val, st_val)
730
731 def test_cancel_creation_removes_observed_sha1(self):
732- trans, root, contents, sha1 = self.get_transform_for_sha1_test()
733+ trans, root, contents, sha1 = self.transform_for_sha1_test()
734 trans_id = trans.new_file('file1', root, contents, file_id=b'file1-id',
735 sha1=sha1)
736 self.assertTrue(trans_id in trans._observed_sha1s)
737@@ -246,7 +246,7 @@
738 self.assertFalse(trans_id in trans._observed_sha1s)
739
740 def test_create_files_same_timestamp(self):
741- transform, root = self.get_transform()
742+ transform, root = self.transform()
743 self.wt.lock_tree_write()
744 self.addCleanup(self.wt.unlock)
745 # Roll back the clock, so that we know everything is being set to the
746@@ -270,7 +270,7 @@
747 self.assertEqual(st1.st_mtime, st2.st_mtime)
748
749 def test_change_root_id(self):
750- transform, root = self.get_transform()
751+ transform, root = self.transform()
752 self.assertNotEqual(b'new-root-id', self.wt.path2id(''))
753 transform.new_directory('', ROOT_PARENT, b'new-root-id')
754 transform.delete_contents(root)
755@@ -280,7 +280,7 @@
756 self.assertEqual(b'new-root-id', self.wt.path2id(''))
757
758 def test_change_root_id_add_files(self):
759- transform, root = self.get_transform()
760+ transform, root = self.transform()
761 self.assertNotEqual(b'new-root-id', self.wt.path2id(''))
762 new_trans_id = transform.new_directory('', ROOT_PARENT, b'new-root-id')
763 transform.new_file('file', new_trans_id, [b'new-contents\n'],
764@@ -294,34 +294,34 @@
765 self.assertFileEqual(b'new-contents\n', self.wt.abspath('file'))
766
767 def test_add_two_roots(self):
768- transform, root = self.get_transform()
769+ transform, root = self.transform()
770 transform.new_directory('', ROOT_PARENT, b'new-root-id')
771 transform.new_directory('', ROOT_PARENT, b'alt-root-id')
772 self.assertRaises(ValueError, transform.fixup_new_roots)
773
774 def test_retain_existing_root(self):
775- tt, root = self.get_transform()
776+ tt, root = self.transform()
777 with tt:
778 tt.new_directory('', ROOT_PARENT, b'new-root-id')
779 tt.fixup_new_roots()
780 self.assertNotEqual(b'new-root-id', tt.final_file_id(tt.root))
781
782 def test_retain_existing_root_added_file(self):
783- tt, root = self.get_transform()
784+ tt, root = self.transform()
785 new_trans_id = tt.new_directory('', ROOT_PARENT, b'new-root-id')
786 child = tt.new_directory('child', new_trans_id, b'child-id')
787 tt.fixup_new_roots()
788 self.assertEqual(tt.root, tt.final_parent(child))
789
790 def test_add_unversioned_root(self):
791- transform, root = self.get_transform()
792+ transform, root = self.transform()
793 transform.new_directory('', ROOT_PARENT, None)
794 transform.delete_contents(transform.root)
795 transform.fixup_new_roots()
796 self.assertNotIn(transform.root, transform._new_id)
797
798 def test_remove_root_fixup(self):
799- transform, root = self.get_transform()
800+ transform, root = self.transform()
801 old_root_id = self.wt.path2id('')
802 self.assertNotEqual(b'new-root-id', old_root_id)
803 transform.delete_contents(root)
804@@ -330,13 +330,13 @@
805 transform.apply()
806 self.assertEqual(old_root_id, self.wt.path2id(''))
807
808- transform, root = self.get_transform()
809+ transform, root = self.transform()
810 transform.new_directory('', ROOT_PARENT, b'new-root-id')
811 transform.new_directory('', ROOT_PARENT, b'alt-root-id')
812 self.assertRaises(ValueError, transform.fixup_new_roots)
813
814 def test_fixup_new_roots_permits_empty_tree(self):
815- transform, root = self.get_transform()
816+ transform, root = self.transform()
817 transform.delete_contents(root)
818 transform.unversion_file(root)
819 transform.fixup_new_roots()
820@@ -346,7 +346,7 @@
821 def test_apply_retains_root_directory(self):
822 # Do not attempt to delete the physical root directory, because that
823 # is impossible.
824- transform, root = self.get_transform()
825+ transform, root = self.transform()
826 with transform:
827 transform.delete_contents(root)
828 e = self.assertRaises(AssertionError, self.assertRaises,
829@@ -355,7 +355,7 @@
830 self.assertContainsRe('TransformRenameFailed not raised', str(e))
831
832 def test_apply_retains_file_id(self):
833- transform, root = self.get_transform()
834+ transform, root = self.transform()
835 old_root_id = transform.tree_file_id(root)
836 transform.unversion_file(root)
837 transform.apply()
838@@ -363,7 +363,7 @@
839
840 def test_hardlink(self):
841 self.requireFeature(HardlinkFeature)
842- transform, root = self.get_transform()
843+ transform, root = self.transform()
844 transform.new_file('file1', root, [b'contents'])
845 transform.apply()
846 target = self.make_branch_and_tree('target')
847@@ -377,7 +377,7 @@
848 self.assertEqual(source_stat, target_stat)
849
850 def test_convenience(self):
851- transform, root = self.get_transform()
852+ transform, root = self.transform()
853 self.wt.lock_tree_write()
854 self.addCleanup(self.wt.unlock)
855 transform.new_file('name', root, [b'contents'], b'my_pretties', True)
856@@ -402,7 +402,7 @@
857 self.assertIs(self.wt.is_executable('oz/dorothy/toto'), False)
858
859 def test_tree_reference(self):
860- transform, root = self.get_transform()
861+ transform, root = self.transform()
862 tree = transform._tree
863 trans_id = transform.new_directory('reference', root, b'subtree-id')
864 transform.set_tree_reference(b'subtree-revision', trans_id)
865@@ -414,7 +414,7 @@
866 tree.root_inventory.get_entry(b'subtree-id').reference_revision)
867
868 def test_conflicts(self):
869- transform, root = self.get_transform()
870+ transform, root = self.transform()
871 trans_id = transform.new_file('name', root, [b'contents'],
872 b'my_pretties')
873 self.assertEqual(len(transform.find_conflicts()), 0)
874@@ -464,7 +464,7 @@
875 self.assertEqual(self.wt.path2id('name'), b'my_pretties')
876 with open(self.wt.abspath('name'), 'rb') as f:
877 self.assertEqual(b'contents', f.read())
878- transform2, root = self.get_transform()
879+ transform2, root = self.transform()
880 oz_id = transform2.trans_id_tree_path('oz')
881 newtip = transform2.new_file('tip', oz_id, [b'other'], b'tip-id')
882 result = transform2.find_conflicts()
883@@ -609,16 +609,16 @@
884 transform._limbo_name(bar_id))
885
886 def test_add_del(self):
887- start, root = self.get_transform()
888+ start, root = self.transform()
889 start.new_directory('a', root, b'a')
890 start.apply()
891- transform, root = self.get_transform()
892+ transform, root = self.transform()
893 transform.delete_versioned(transform.trans_id_tree_path('a'))
894 transform.new_directory('a', root, b'a')
895 transform.apply()
896
897 def test_unversioning(self):
898- create_tree, root = self.get_transform()
899+ create_tree, root = self.transform()
900 parent_id = create_tree.new_directory('parent', root, b'parent-id')
901 create_tree.new_file('child', parent_id, [b'child'], b'child-id')
902 create_tree.apply()
903@@ -633,7 +633,7 @@
904 unversion.apply()
905
906 def test_name_invariants(self):
907- create_tree, root = self.get_transform()
908+ create_tree, root = self.transform()
909 # prepare tree
910 root = create_tree.root
911 create_tree.new_file('name1', root, [b'hello1'], b'name1')
912@@ -644,7 +644,7 @@
913 create_tree.new_file('moving_file2', root, [b'later2'], b'mfile2')
914 create_tree.apply()
915
916- mangle_tree, root = self.get_transform()
917+ mangle_tree, root = self.transform()
918 root = mangle_tree.root
919 # swap names
920 name1 = mangle_tree.trans_id_tree_path('name1')
921@@ -688,12 +688,12 @@
922 mfile2_path = self.wt.abspath(pathjoin('new_directory', 'mfile2'))
923
924 def test_both_rename(self):
925- create_tree, root = self.get_transform()
926+ create_tree, root = self.transform()
927 newdir = create_tree.new_directory('selftest', root, b'selftest-id')
928 create_tree.new_file('blackbox.py', newdir, [
929 b'hello1'], b'blackbox-id')
930 create_tree.apply()
931- mangle_tree, root = self.get_transform()
932+ mangle_tree, root = self.transform()
933 selftest = mangle_tree.trans_id_tree_path('selftest')
934 blackbox = mangle_tree.trans_id_tree_path('selftest/blackbox.py')
935 mangle_tree.adjust_path('test', root, selftest)
936@@ -702,14 +702,14 @@
937 mangle_tree.apply()
938
939 def test_both_rename2(self):
940- create_tree, root = self.get_transform()
941+ create_tree, root = self.transform()
942 breezy = create_tree.new_directory('breezy', root, b'breezy-id')
943 tests = create_tree.new_directory('tests', breezy, b'tests-id')
944 blackbox = create_tree.new_directory('blackbox', tests, b'blackbox-id')
945 create_tree.new_file('test_too_much.py', blackbox, [b'hello1'],
946 b'test_too_much-id')
947 create_tree.apply()
948- mangle_tree, root = self.get_transform()
949+ mangle_tree, root = self.transform()
950 breezy = mangle_tree.trans_id_tree_path('breezy')
951 tests = mangle_tree.trans_id_tree_path('breezy/tests')
952 test_too_much = mangle_tree.trans_id_tree_path(
953@@ -720,12 +720,12 @@
954 mangle_tree.apply()
955
956 def test_both_rename3(self):
957- create_tree, root = self.get_transform()
958+ create_tree, root = self.transform()
959 tests = create_tree.new_directory('tests', root, b'tests-id')
960 create_tree.new_file('test_too_much.py', tests, [b'hello1'],
961 b'test_too_much-id')
962 create_tree.apply()
963- mangle_tree, root = self.get_transform()
964+ mangle_tree, root = self.transform()
965 tests = mangle_tree.trans_id_tree_path('tests')
966 test_too_much = mangle_tree.trans_id_tree_path(
967 'tests/test_too_much.py')
968@@ -735,23 +735,23 @@
969 mangle_tree.apply()
970
971 def test_move_dangling_ie(self):
972- create_tree, root = self.get_transform()
973+ create_tree, root = self.transform()
974 # prepare tree
975 root = create_tree.root
976 create_tree.new_file('name1', root, [b'hello1'], b'name1')
977 create_tree.apply()
978- delete_contents, root = self.get_transform()
979+ delete_contents, root = self.transform()
980 file = delete_contents.trans_id_tree_path('name1')
981 delete_contents.delete_contents(file)
982 delete_contents.apply()
983- move_id, root = self.get_transform()
984+ move_id, root = self.transform()
985 name1 = move_id.trans_id_tree_path('name1')
986 newdir = move_id.new_directory('dir', root, b'newdir')
987 move_id.adjust_path('name2', newdir, name1)
988 move_id.apply()
989
990 def test_replace_dangling_ie(self):
991- create_tree, root = self.get_transform()
992+ create_tree, root = self.transform()
993 # prepare tree
994 root = create_tree.root
995 create_tree.new_file('name1', root, [b'hello1'], b'name1')
996@@ -778,7 +778,7 @@
997 return 'oz/' + p
998
999 self.requireFeature(SymlinkFeature)
1000- transform, root = self.get_transform()
1001+ transform, root = self.transform()
1002 oz_id = transform.new_directory('oz', root, b'oz-id')
1003 transform.new_symlink(link_name1, oz_id, link_target1, b'wizard-id')
1004 wiz_id = transform.create_path(link_name2, oz_id)
1005@@ -825,12 +825,12 @@
1006 os.symlink = os_symlink
1007
1008 def get_conflicted(self):
1009- create, root = self.get_transform()
1010+ create, root = self.transform()
1011 create.new_file('dorothy', root, [b'dorothy'], b'dorothy-id')
1012 oz = create.new_directory('oz', root, b'oz-id')
1013 create.new_directory('emeraldcity', oz, b'emerald-id')
1014 create.apply()
1015- conflicts, root = self.get_transform()
1016+ conflicts, root = self.transform()
1017 # set up duplicate entry, duplicate id
1018 new_dorothy = conflicts.new_file('dorothy', root, [b'dorothy'],
1019 b'dorothy-id')
1020@@ -916,10 +916,10 @@
1021 ' oz/emeraldcity. Cancelled move.')
1022
1023 def prepare_wrong_parent_kind(self):
1024- tt, root = self.get_transform()
1025+ tt, root = self.transform()
1026 tt.new_file('parent', root, [b'contents'], b'parent-id')
1027 tt.apply()
1028- tt, root = self.get_transform()
1029+ tt, root = self.transform()
1030 parent_id = tt.trans_id_file_id(b'parent-id')
1031 tt.new_file('child,', parent_id, [b'contents2'], b'file-id')
1032 return tt
1033@@ -941,11 +941,11 @@
1034 self.assertEqual(b'parent-id', self.wt.path2id('parent.new'))
1035
1036 def test_resolve_conflicts_wrong_new_parent_kind(self):
1037- tt, root = self.get_transform()
1038+ tt, root = self.transform()
1039 parent_id = tt.new_directory('parent', root, b'parent-id')
1040 tt.new_file('child,', parent_id, [b'contents2'], b'file-id')
1041 tt.apply()
1042- tt, root = self.get_transform()
1043+ tt, root = self.transform()
1044 parent_id = tt.trans_id_file_id(b'parent-id')
1045 tt.delete_contents(parent_id)
1046 tt.create_file([b'contents'], parent_id)
1047@@ -957,11 +957,11 @@
1048 self.assertEqual(b'parent-id', self.wt.path2id('parent.new'))
1049
1050 def test_resolve_conflicts_wrong_parent_kind_unversioned(self):
1051- tt, root = self.get_transform()
1052+ tt, root = self.transform()
1053 parent_id = tt.new_directory('parent', root)
1054 tt.new_file('child,', parent_id, [b'contents2'])
1055 tt.apply()
1056- tt, root = self.get_transform()
1057+ tt, root = self.transform()
1058 parent_id = tt.trans_id_tree_path('parent')
1059 tt.delete_contents(parent_id)
1060 tt.create_file([b'contents'], parent_id)
1061@@ -986,37 +986,37 @@
1062 self.assertRaises(NoFinalPath, tt.apply)
1063
1064 def test_moving_versioned_directories(self):
1065- create, root = self.get_transform()
1066+ create, root = self.transform()
1067 kansas = create.new_directory('kansas', root, b'kansas-id')
1068 create.new_directory('house', kansas, b'house-id')
1069 create.new_directory('oz', root, b'oz-id')
1070 create.apply()
1071- cyclone, root = self.get_transform()
1072+ cyclone, root = self.transform()
1073 oz = cyclone.trans_id_tree_path('oz')
1074 house = cyclone.trans_id_tree_path('house')
1075 cyclone.adjust_path('house', oz, house)
1076 cyclone.apply()
1077
1078 def test_moving_root(self):
1079- create, root = self.get_transform()
1080+ create, root = self.transform()
1081 fun = create.new_directory('fun', root, b'fun-id')
1082 create.new_directory('sun', root, b'sun-id')
1083 create.new_directory('moon', root, b'moon')
1084 create.apply()
1085- transform, root = self.get_transform()
1086+ transform, root = self.transform()
1087 transform.adjust_root_path('oldroot', fun)
1088 new_root = transform.trans_id_tree_path('')
1089 transform.version_file(b'new-root', new_root)
1090 transform.apply()
1091
1092 def test_renames(self):
1093- create, root = self.get_transform()
1094+ create, root = self.transform()
1095 old = create.new_directory('old-parent', root, b'old-id')
1096 intermediate = create.new_directory('intermediate', old, b'im-id')
1097 myfile = create.new_file('myfile', intermediate, [b'myfile-text'],
1098 b'myfile-id')
1099 create.apply()
1100- rename, root = self.get_transform()
1101+ rename, root = self.transform()
1102 old = rename.trans_id_file_id(b'old-id')
1103 rename.adjust_path('new', root, old)
1104 myfile = rename.trans_id_file_id(b'myfile-id')
1105@@ -1026,7 +1026,7 @@
1106 def test_rename_fails(self):
1107 self.requireFeature(features.not_running_as_root)
1108 # see https://bugs.launchpad.net/bzr/+bug/491763
1109- create, root_id = self.get_transform()
1110+ create, root_id = self.transform()
1111 create.new_directory('first-dir', root_id, b'first-id')
1112 create.new_file('myfile', root_id, [b'myfile-text'], b'myfile-id')
1113 create.apply()
1114@@ -1039,7 +1039,7 @@
1115 else:
1116 self.skipTest("Can't force a permissions error on rename")
1117 # now transform to rename
1118- rename_transform, root_id = self.get_transform()
1119+ rename_transform, root_id = self.transform()
1120 file_trans_id = rename_transform.trans_id_file_id(b'myfile-id')
1121 dir_id = rename_transform.trans_id_file_id(b'first-id')
1122 rename_transform.adjust_path('newname', dir_id, file_trans_id)
1123@@ -1070,7 +1070,7 @@
1124 declared should throw an exception (this may happen when a
1125 merge attempts to create a file with a duplicate ID)
1126 """
1127- transform, root = self.get_transform()
1128+ transform, root = self.transform()
1129 wt = transform._tree
1130 wt.lock_read()
1131 self.addCleanup(wt.unlock)
1132@@ -1090,13 +1090,13 @@
1133 """File mode is preserved when replacing content"""
1134 if sys.platform == 'win32':
1135 raise TestSkipped('chmod has no effect on win32')
1136- transform, root = self.get_transform()
1137+ transform, root = self.transform()
1138 transform.new_file('file1', root, [b'contents'], b'file1-id', True)
1139 transform.apply()
1140 self.wt.lock_write()
1141 self.addCleanup(self.wt.unlock)
1142 self.assertTrue(self.wt.is_executable('file1'))
1143- transform, root = self.get_transform()
1144+ transform, root = self.transform()
1145 file1_id = transform.trans_id_tree_path('file1')
1146 transform.delete_contents(file1_id)
1147 transform.create_file([b'contents2'], file1_id)
1148@@ -1115,13 +1115,13 @@
1149 stat_paths.append(path)
1150 return real_stat(path)
1151
1152- transform, root = self.get_transform()
1153+ transform, root = self.transform()
1154
1155 bar1_id = transform.new_file('bar', root, [b'bar contents 1\n'],
1156 file_id=b'bar-id-1', executable=False)
1157 transform.apply()
1158
1159- transform, root = self.get_transform()
1160+ transform, root = self.transform()
1161 bar1_id = transform.trans_id_tree_path('bar')
1162 bar2_id = transform.trans_id_tree_path('bar2')
1163 try:
1164@@ -1137,10 +1137,10 @@
1165
1166 def test_iter_changes(self):
1167 self.wt.set_root_id(b'eert_toor')
1168- transform, root = self.get_transform()
1169+ transform, root = self.transform()
1170 transform.new_file('old', root, [b'blah'], b'id-1', True)
1171 transform.apply()
1172- transform, root = self.get_transform()
1173+ transform, root = self.transform()
1174 try:
1175 self.assertEqual([], list(transform.iter_changes()))
1176 old = transform.trans_id_tree_path('old')
1177@@ -1161,10 +1161,10 @@
1178
1179 def test_iter_changes_new(self):
1180 self.wt.set_root_id(b'eert_toor')
1181- transform, root = self.get_transform()
1182+ transform, root = self.transform()
1183 transform.new_file('old', root, [b'blah'])
1184 transform.apply()
1185- transform, root = self.get_transform()
1186+ transform, root = self.transform()
1187 try:
1188 old = transform.trans_id_tree_path('old')
1189 transform.version_file(b'id-1', old)
1190@@ -1178,12 +1178,12 @@
1191
1192 def test_iter_changes_modifications(self):
1193 self.wt.set_root_id(b'eert_toor')
1194- transform, root = self.get_transform()
1195+ transform, root = self.transform()
1196 transform.new_file('old', root, [b'blah'], b'id-1')
1197 transform.new_file('new', root, [b'blah'])
1198 transform.new_directory('subdir', root, b'subdir-id')
1199 transform.apply()
1200- transform, root = self.get_transform()
1201+ transform, root = self.transform()
1202 try:
1203 old = transform.trans_id_tree_path('old')
1204 subdir = transform.trans_id_tree_path('subdir')
1205@@ -1268,11 +1268,11 @@
1206 # will be applied before file2. And if it's applied after file2, it
1207 # obviously can't bleed into file2's change output. But for now, it
1208 # works.
1209- transform, root = self.get_transform()
1210+ transform, root = self.transform()
1211 transform.new_file('file1', root, [b'blah'], b'id-1')
1212 transform.new_file('file2', root, [b'blah'], b'id-2')
1213 transform.apply()
1214- transform, root = self.get_transform()
1215+ transform, root = self.transform()
1216 try:
1217 transform.delete_contents(transform.trans_id_file_id(b'id-1'))
1218 transform.set_executability(True,
1219@@ -1292,13 +1292,13 @@
1220 """Test moving ids with no files around"""
1221 self.wt.set_root_id(b'toor_eert')
1222 # Need two steps because versioning a non-existant file is a conflict.
1223- transform, root = self.get_transform()
1224+ transform, root = self.transform()
1225 transform.new_directory('floater', root, b'floater-id')
1226 transform.apply()
1227- transform, root = self.get_transform()
1228+ transform, root = self.transform()
1229 transform.delete_contents(transform.trans_id_tree_path('floater'))
1230 transform.apply()
1231- transform, root = self.get_transform()
1232+ transform, root = self.transform()
1233 floater = transform.trans_id_tree_path('floater')
1234 try:
1235 transform.adjust_path('flitter', root, floater)
1236@@ -1314,11 +1314,11 @@
1237 def test_iter_changes_pointless(self):
1238 """Ensure that no-ops are not treated as modifications"""
1239 self.wt.set_root_id(b'eert_toor')
1240- transform, root = self.get_transform()
1241+ transform, root = self.transform()
1242 transform.new_file('old', root, [b'blah'], b'id-1')
1243 transform.new_directory('subdir', root, b'subdir-id')
1244 transform.apply()
1245- transform, root = self.get_transform()
1246+ transform, root = self.transform()
1247 try:
1248 old = transform.trans_id_tree_path('old')
1249 subdir = transform.trans_id_tree_path('subdir')
1250@@ -1334,12 +1334,12 @@
1251 transform.finalize()
1252
1253 def test_rename_count(self):
1254- transform, root = self.get_transform()
1255+ transform, root = self.transform()
1256 transform.new_file('name1', root, [b'contents'])
1257 self.assertEqual(transform.rename_count, 0)
1258 transform.apply()
1259 self.assertEqual(transform.rename_count, 1)
1260- transform2, root = self.get_transform()
1261+ transform2, root = self.transform()
1262 transform2.adjust_path('name2', root,
1263 transform2.trans_id_tree_path('name1'))
1264 self.assertEqual(transform2.rename_count, 0)
1265@@ -1356,7 +1356,7 @@
1266 This test ensures they work correctly with the rename-avoidance
1267 optimization.
1268 """
1269- transform, root = self.get_transform()
1270+ transform, root = self.transform()
1271 parent1 = transform.new_directory('parent1', root)
1272 child1 = transform.new_file('child1', parent1, [b'contents'])
1273 parent2 = transform.new_directory('parent2', root)
1274@@ -1375,7 +1375,7 @@
1275 before adjusting the path. The transform must detect that the
1276 directory is non-empty, and move children to safe locations.
1277 """
1278- transform, root = self.get_transform()
1279+ transform, root = self.transform()
1280 parent1 = transform.new_directory('parent1', root)
1281 child1 = transform.new_file('child1', parent1, [b'contents'])
1282 child2 = transform.new_file('child2', parent1, [b'contents'])
1283@@ -1402,7 +1402,7 @@
1284
1285 def test_adjust_and_cancel(self):
1286 """Make sure adjust_path keeps track of limbo children properly"""
1287- transform, root = self.get_transform()
1288+ transform, root = self.transform()
1289 parent1 = transform.new_directory('parent1', root)
1290 child1 = transform.new_file('child1', parent1, [b'contents'])
1291 parent2 = transform.new_directory('parent2', root)
1292@@ -1418,7 +1418,7 @@
1293
1294 def test_noname_contents(self):
1295 """TreeTransform should permit deferring naming files."""
1296- transform, root = self.get_transform()
1297+ transform, root = self.transform()
1298 parent = transform.trans_id_file_id(b'parent-id')
1299 try:
1300 transform.create_directory(parent)
1301@@ -1428,7 +1428,7 @@
1302
1303 def test_noname_contents_nested(self):
1304 """TreeTransform should permit deferring naming files."""
1305- transform, root = self.get_transform()
1306+ transform, root = self.transform()
1307 parent = transform.trans_id_file_id(b'parent-id')
1308 try:
1309 transform.create_directory(parent)
1310@@ -1442,7 +1442,7 @@
1311
1312 def test_reuse_name(self):
1313 """Avoid reusing the same limbo name for different files"""
1314- transform, root = self.get_transform()
1315+ transform, root = self.transform()
1316 parent = transform.new_directory('parent', root)
1317 transform.new_directory('child', parent)
1318 try:
1319@@ -1460,7 +1460,7 @@
1320
1321 def test_reuse_when_first_moved(self):
1322 """Don't avoid direct paths when it is safe to use them"""
1323- transform, root = self.get_transform()
1324+ transform, root = self.transform()
1325 parent = transform.new_directory('parent', root)
1326 child1 = transform.new_directory('child', parent)
1327 transform.adjust_path('child1', parent, child1)
1328@@ -1471,7 +1471,7 @@
1329
1330 def test_reuse_after_cancel(self):
1331 """Don't avoid direct paths when it is safe to use them"""
1332- transform, root = self.get_transform()
1333+ transform, root = self.transform()
1334 parent2 = transform.new_directory('parent2', root)
1335 child1 = transform.new_directory('child1', parent2)
1336 transform.cancel_creation(parent2)
1337@@ -1484,7 +1484,7 @@
1338
1339 def test_finalize_order(self):
1340 """Finalize must be done in child-to-parent order"""
1341- transform, root = self.get_transform()
1342+ transform, root = self.transform()
1343 parent = transform.new_directory('parent', root)
1344 transform.new_directory('child', parent)
1345 try:
1346@@ -1493,7 +1493,7 @@
1347 self.fail('Tried to remove parent before child1')
1348
1349 def test_cancel_with_cancelled_child_should_succeed(self):
1350- transform, root = self.get_transform()
1351+ transform, root = self.transform()
1352 parent = transform.new_directory('parent', root)
1353 child = transform.new_directory('child', parent)
1354 transform.cancel_creation(child)
1355@@ -1656,7 +1656,7 @@
1356 self.assertEqual(wt.kind("foo"), "file")
1357
1358 def test_no_final_path(self):
1359- transform, root = self.get_transform()
1360+ transform, root = self.transform()
1361 trans_id = transform.trans_id_file_id(b'foo')
1362 transform.create_file([b'bar'], trans_id)
1363 transform.cancel_creation(trans_id)
1364@@ -1723,14 +1723,14 @@
1365 tree = self.make_branch_and_tree('tree')
1366 self.build_tree(['tree/foo'])
1367 tree.add('foo', b'foo-id')
1368- with TransformPreview(tree) as tt:
1369+ with tree.preview_transform() as tt:
1370 self.assertEqual([], tt._inventory_altered())
1371
1372 def test_inventory_altered_changed_parent_id(self):
1373 tree = self.make_branch_and_tree('tree')
1374 self.build_tree(['tree/foo'])
1375 tree.add('foo', b'foo-id')
1376- with TransformPreview(tree) as tt:
1377+ with tree.preview_transform() as tt:
1378 tt.unversion_file(tt.root)
1379 tt.version_file(b'new-id', tt.root)
1380 foo_trans_id = tt.trans_id_tree_path('foo')
1381@@ -1742,7 +1742,7 @@
1382 tree = self.make_branch_and_tree('tree')
1383 self.build_tree(['tree/foo'])
1384 tree.add('foo', b'foo-id')
1385- with TransformPreview(tree) as tt:
1386+ with tree.preview_transform() as tt:
1387 tt.unversion_file(tt.root)
1388 tt.version_file(tree.path2id(''), tt.root)
1389 tt.trans_id_tree_path('foo')
1390@@ -2355,7 +2355,7 @@
1391
1392 def get_branch_and_transform(self):
1393 branch = self.get_branch()
1394- tt = TransformPreview(branch.basis_tree())
1395+ tt = branch.basis_tree().preview_transform()
1396 self.addCleanup(tt.finalize)
1397 return branch, tt
1398
1399@@ -2363,7 +2363,7 @@
1400 branch = self.get_branch()
1401 basis = branch.repository.revision_tree(
1402 _mod_revision.NULL_REVISION)
1403- tt = TransformPreview(basis)
1404+ tt = basis.preview_transform()
1405 self.addCleanup(tt.finalize)
1406 e = self.assertRaises(ValueError, tt.commit, branch, '')
1407 self.assertEqual('TreeTransform not based on branch basis: null:',
1408@@ -2386,7 +2386,7 @@
1409 branch = self.make_branch('branch')
1410 branch.lock_write()
1411 self.addCleanup(branch.unlock)
1412- tt = TransformPreview(branch.basis_tree())
1413+ tt = branch.basis_tree().preview_transform()
1414 self.addCleanup(tt.finalize)
1415 tt.new_directory('', ROOT_PARENT, b'TREE_ROOT')
1416 tt.commit(branch, 'my message')
1417@@ -2398,7 +2398,7 @@
1418 branch = self.make_branch('branch')
1419 branch.lock_write()
1420 self.addCleanup(branch.unlock)
1421- tt = TransformPreview(branch.basis_tree())
1422+ tt = branch.basis_tree().preview_transform()
1423 self.addCleanup(tt.finalize)
1424 e = self.assertRaises(ValueError, tt.commit, branch,
1425 'my message', [b'rev1b-id'])
1426@@ -2431,7 +2431,7 @@
1427 branch, tt = self.get_branch_and_transform()
1428 tt.new_file('file', tt.root, [b'contents'], b'file-id')
1429 tt.commit(branch, 'message', strict=True)
1430- tt = TransformPreview(branch.basis_tree())
1431+ tt = branch.basis_tree().preview_transform()
1432 self.addCleanup(tt.finalize)
1433 trans_id = tt.trans_id_file_id(b'file-id')
1434 tt.delete_contents(trans_id)
1435@@ -2788,24 +2788,24 @@
1436 def get_empty_preview(self):
1437 repository = self.make_repository('repo')
1438 tree = repository.revision_tree(_mod_revision.NULL_REVISION)
1439- preview = TransformPreview(tree)
1440+ preview = tree.preview_transform()
1441 self.addCleanup(preview.finalize)
1442 return preview
1443
1444 def test_transform_preview(self):
1445 revision_tree = self.create_tree()
1446- preview = TransformPreview(revision_tree)
1447+ preview = revision_tree.preview_transform()
1448 self.addCleanup(preview.finalize)
1449
1450 def test_transform_preview_tree(self):
1451 revision_tree = self.create_tree()
1452- preview = TransformPreview(revision_tree)
1453+ preview = revision_tree.preview_transform()
1454 self.addCleanup(preview.finalize)
1455 preview.get_preview_tree()
1456
1457 def test_transform_new_file(self):
1458 revision_tree = self.create_tree()
1459- preview = TransformPreview(revision_tree)
1460+ preview = revision_tree.preview_transform()
1461 self.addCleanup(preview.finalize)
1462 preview.new_file('file2', preview.root, [b'content B\n'], b'file2-id')
1463 preview_tree = preview.get_preview_tree()
1464@@ -2815,7 +2815,7 @@
1465
1466 def test_diff_preview_tree(self):
1467 revision_tree = self.create_tree()
1468- preview = TransformPreview(revision_tree)
1469+ preview = revision_tree.preview_transform()
1470 self.addCleanup(preview.finalize)
1471 preview.new_file('file2', preview.root, [b'content B\n'], b'file2-id')
1472 preview_tree = preview.get_preview_tree()
1473@@ -2836,7 +2836,7 @@
1474 tree.add('foo', b'foo-id')
1475 tree.commit('rev1', rev_id=b'rev1')
1476 revision_tree = tree.branch.repository.revision_tree(b'rev1')
1477- preview = TransformPreview(revision_tree)
1478+ preview = revision_tree.preview_transform()
1479 self.addCleanup(preview.finalize)
1480 preview.delete_versioned(preview.trans_id_tree_path('foo'))
1481 preview_tree = preview.get_preview_tree()
1482@@ -2856,7 +2856,7 @@
1483
1484 def test_transform_conflicts(self):
1485 revision_tree = self.create_tree()
1486- preview = TransformPreview(revision_tree)
1487+ preview = revision_tree.preview_transform()
1488 self.addCleanup(preview.finalize)
1489 preview.new_file('a', preview.root, [b'content 2'])
1490 resolve_conflicts(preview)
1491@@ -2865,7 +2865,7 @@
1492
1493 def get_tree_and_preview_tree(self):
1494 revision_tree = self.create_tree()
1495- preview = TransformPreview(revision_tree)
1496+ preview = revision_tree.preview_transform()
1497 self.addCleanup(preview.finalize)
1498 a_trans_id = preview.trans_id_file_id(b'a-id')
1499 preview.delete_contents(a_trans_id)
1500@@ -2917,7 +2917,7 @@
1501
1502 def test_kind(self):
1503 revision_tree = self.create_tree()
1504- preview = TransformPreview(revision_tree)
1505+ preview = revision_tree.preview_transform()
1506 self.addCleanup(preview.finalize)
1507 preview.new_file('file', preview.root, [b'contents'], b'file-id')
1508 preview.new_directory('directory', preview.root, b'dir-id')
1509@@ -2938,7 +2938,7 @@
1510 work_tree = self.make_branch_and_tree('tree')
1511 self.build_tree(['tree/file'])
1512 work_tree.add('file', b'file-id')
1513- preview = TransformPreview(work_tree)
1514+ preview = work_tree.preview_transform()
1515 self.addCleanup(preview.finalize)
1516 file_trans_id = preview.trans_id_tree_path('file')
1517 preview.adjust_path('renamed', preview.root, file_trans_id)
1518@@ -2950,7 +2950,7 @@
1519 work_tree = self.make_branch_and_tree('tree')
1520 self.build_tree_contents([('tree/old', b'old')])
1521 work_tree.add('old', b'old-id')
1522- preview = TransformPreview(work_tree)
1523+ preview = work_tree.preview_transform()
1524 self.addCleanup(preview.finalize)
1525 preview.new_file('name', preview.root, [b'contents'], b'new-id',
1526 'executable')
1527@@ -2977,7 +2977,7 @@
1528 tree = self.make_branch_and_tree('tree')
1529 self.build_tree(['tree/a', 'tree/b', 'tree/c'])
1530 tree.add(['a', 'b', 'c'], [b'a-id', b'b-id', b'c-id'])
1531- preview = TransformPreview(tree)
1532+ preview = tree.preview_transform()
1533 self.addCleanup(preview.finalize)
1534 preview.unversion_file(preview.trans_id_file_id(b'b-id'))
1535 c_trans_id = preview.trans_id_file_id(b'c-id')
1536@@ -2991,7 +2991,7 @@
1537 tree = self.make_branch_and_tree('tree')
1538 self.build_tree(['tree/unchanged', 'tree/deleted'])
1539 tree.add(['unchanged', 'deleted'], [b'unchanged-id', b'deleted-id'])
1540- preview = TransformPreview(tree)
1541+ preview = tree.preview_transform()
1542 self.addCleanup(preview.finalize)
1543 preview.unversion_file(preview.trans_id_file_id(b'deleted-id'))
1544 preview_tree = preview.get_preview_tree()
1545@@ -3002,7 +3002,7 @@
1546 tree = self.make_branch_and_tree('tree')
1547 self.build_tree(['tree/unchanged'])
1548 tree.add(['unchanged'], [b'unchanged-id'])
1549- preview = TransformPreview(tree)
1550+ preview = tree.preview_transform()
1551 self.addCleanup(preview.finalize)
1552 preview.new_file('new', preview.trans_id_file_id(b'unchanged-id'),
1553 [b'contents'], b'new-id')
1554@@ -3014,7 +3014,7 @@
1555 self.build_tree(['tree/old_parent/', 'tree/old_parent/child'])
1556 tree.add(['old_parent', 'old_parent/child'],
1557 [b'old_parent-id', b'child-id'])
1558- preview = TransformPreview(tree)
1559+ preview = tree.preview_transform()
1560 self.addCleanup(preview.finalize)
1561 new_parent = preview.new_directory('new_parent', preview.root,
1562 b'new_parent-id')
1563@@ -3029,7 +3029,7 @@
1564 self.build_tree(['tree/old_name/', 'tree/old_name/child'])
1565 tree.add(['old_name', 'old_name/child'],
1566 [b'parent-id', b'child-id'])
1567- preview = TransformPreview(tree)
1568+ preview = tree.preview_transform()
1569 self.addCleanup(preview.finalize)
1570 preview.adjust_path('new_name', preview.root,
1571 preview.trans_id_file_id(b'parent-id'))
1572@@ -3102,7 +3102,7 @@
1573 tree = self.make_branch_and_tree('tree')
1574 self.build_tree(['tree/path/'])
1575 tree.add('path')
1576- preview = TransformPreview(tree)
1577+ preview = tree.preview_transform()
1578 self.addCleanup(preview.finalize)
1579 preview.delete_contents(preview.trans_id_tree_path('path'))
1580 summary = preview.get_preview_tree().path_content_summary('path')
1581@@ -3127,7 +3127,7 @@
1582 tree = self.make_branch_and_tree('tree')
1583 self.build_tree(['tree/path'])
1584 tree.add('path')
1585- preview = TransformPreview(tree)
1586+ preview = tree.preview_transform()
1587 self.addCleanup(preview.finalize)
1588 path_id = preview.trans_id_tree_path('path')
1589 preview.set_executability(True, path_id)
1590@@ -3167,7 +3167,7 @@
1591 tree.add('file', b'file-id')
1592 tree.commit('a', rev_id=b'one')
1593 self.build_tree_contents([('tree/file', b'a\nb\n')])
1594- preview = TransformPreview(tree)
1595+ preview = tree.preview_transform()
1596 self.addCleanup(preview.finalize)
1597 file_trans_id = preview.trans_id_file_id(b'file-id')
1598 preview.delete_contents(file_trans_id)
1599@@ -3200,7 +3200,7 @@
1600 self.build_tree_contents([('tree/file', b'a\n')])
1601 tree.add('file', b'file-id')
1602 tree.commit('a', rev_id=b'one')
1603- preview = TransformPreview(tree)
1604+ preview = tree.preview_transform()
1605 self.addCleanup(preview.finalize)
1606 file_trans_id = preview.trans_id_file_id(b'file-id')
1607 preview.adjust_path('newname', preview.root, file_trans_id)
1608@@ -3218,7 +3218,7 @@
1609 tree.add('file', b'file-id')
1610 tree.commit('a', rev_id=b'one')
1611 self.build_tree_contents([('tree/file', b'a\nb\n')])
1612- preview = TransformPreview(tree)
1613+ preview = tree.preview_transform()
1614 self.addCleanup(preview.finalize)
1615 file_trans_id = preview.trans_id_file_id(b'file-id')
1616 preview.delete_contents(file_trans_id)
1617@@ -3252,7 +3252,7 @@
1618 work_a.add('file', b'file-id')
1619 base_id = work_a.commit('base version')
1620 tree_b = work_a.controldir.sprout('wtb').open_workingtree()
1621- preview = TransformPreview(work_a)
1622+ preview = work_a.preview_transform()
1623 self.addCleanup(preview.finalize)
1624 trans_id = preview.trans_id_file_id(b'file-id')
1625 preview.delete_contents(trans_id)
1626@@ -3275,7 +3275,7 @@
1627 work_a.add('file', b'file-id')
1628 base_id = work_a.commit('base version')
1629 tree_b = work_a.controldir.sprout('wtb').open_workingtree()
1630- preview = TransformPreview(work_a.basis_tree())
1631+ preview = work_a.basis_tree().preview_transform()
1632 self.addCleanup(preview.finalize)
1633 trans_id = preview.trans_id_file_id(b'file-id')
1634 preview.delete_contents(trans_id)
1635@@ -3308,7 +3308,7 @@
1636 self.build_tree(['tree/removed-file', 'tree/existing-file',
1637 'tree/not-removed-file'])
1638 work_tree.add(['removed-file', 'not-removed-file'])
1639- preview = TransformPreview(work_tree)
1640+ preview = work_tree.preview_transform()
1641 self.addCleanup(preview.finalize)
1642 preview.new_file('new-file', preview.root, [b'contents'])
1643 preview.new_file('new-versioned-file', preview.root, [b'contents'],
1644@@ -3330,7 +3330,7 @@
1645 self.addCleanup(child_tree.unlock)
1646 work_tree.lock_write()
1647 self.addCleanup(work_tree.unlock)
1648- preview = TransformPreview(work_tree)
1649+ preview = work_tree.preview_transform()
1650 self.addCleanup(preview.finalize)
1651 file_trans_id = preview.trans_id_file_id(b'file-id')
1652 preview.delete_contents(file_trans_id)
1653@@ -3351,7 +3351,7 @@
1654 def test_merge_preview_into_workingtree(self):
1655 tree = self.make_branch_and_tree('tree')
1656 tree.set_root_id(b'TREE_ROOT')
1657- tt = TransformPreview(tree)
1658+ tt = tree.preview_transform()
1659 self.addCleanup(tt.finalize)
1660 tt.new_file('name', tt.root, [b'content'], b'file-id')
1661 tree2 = self.make_branch_and_tree('tree2')
1662@@ -3366,7 +3366,7 @@
1663 self.build_tree_contents([('tree/foo', b'bar')])
1664 tree.add('foo', b'foo-id')
1665 tree.commit('foo')
1666- tt = TransformPreview(tree)
1667+ tt = tree.preview_transform()
1668 self.addCleanup(tt.finalize)
1669 trans_id = tt.trans_id_file_id(b'foo-id')
1670 tt.delete_contents(trans_id)
1671@@ -3381,7 +3381,7 @@
1672 def test_has_filename(self):
1673 wt = self.make_branch_and_tree('tree')
1674 self.build_tree(['tree/unmodified', 'tree/removed', 'tree/modified'])
1675- tt = TransformPreview(wt)
1676+ tt = wt.preview_transform()
1677 removed_id = tt.trans_id_tree_path('removed')
1678 tt.delete_contents(removed_id)
1679 tt.new_file('new', tt.root, [b'contents'])
1680@@ -3398,7 +3398,7 @@
1681
1682 def test_is_executable(self):
1683 tree = self.make_branch_and_tree('tree')
1684- preview = TransformPreview(tree)
1685+ preview = tree.preview_transform()
1686 self.addCleanup(preview.finalize)
1687 preview.new_file('foo', preview.root, [b'bar'], b'baz-id')
1688 preview_tree = preview.get_preview_tree()
1689@@ -3409,7 +3409,7 @@
1690 rev_id = tree.commit('rev1')
1691 tree.branch.lock_write()
1692 self.addCleanup(tree.branch.unlock)
1693- tt = TransformPreview(tree)
1694+ tt = tree.preview_transform()
1695 tt.new_file('file', tt.root, [b'contents'], b'file_id')
1696 self.addCleanup(tt.finalize)
1697 preview = tt.get_preview_tree()
1698@@ -3425,7 +3425,7 @@
1699 self.requireFeature(features.UnicodeFilenameFeature)
1700 branch = self.make_branch('any')
1701 tree = branch.repository.revision_tree(_mod_revision.NULL_REVISION)
1702- tt = TransformPreview(tree)
1703+ tt = tree.preview_transform()
1704 self.addCleanup(tt.finalize)
1705 foo_id = tt.new_directory('', ROOT_PARENT)
1706 bar_id = tt.new_file(u'\u1234bar', foo_id, [b'contents'])
1707@@ -3450,7 +3450,7 @@
1708 def get_preview(self, tree=None):
1709 if tree is None:
1710 tree = self.make_branch_and_tree('tree')
1711- tt = TransformPreview(tree)
1712+ tt = tree.preview_transform()
1713 self.addCleanup(tt.finalize)
1714 return tt
1715
1716@@ -3709,7 +3709,7 @@
1717
1718 def test_no_orphan_for_transform_preview(self):
1719 tree = self.make_branch_and_tree('tree')
1720- tt = transform.TransformPreview(tree)
1721+ tt = tree.preview_transform()
1722 self.addCleanup(tt.finalize)
1723 self.assertRaises(NotImplementedError, tt.new_orphan, 'foo', 'bar')
1724
1725@@ -3805,7 +3805,7 @@
1726 self.wt = self.make_branch_and_tree('.')
1727 os.chdir('..')
1728
1729- def get_transform(self):
1730+ def transform(self):
1731 transform = TreeTransform(self.wt)
1732 self.addCleanup(transform.finalize)
1733 return transform, transform.root
1734@@ -3817,7 +3817,7 @@
1735 calls.append((tree, tt))
1736 MutableTree.hooks.install_named_hook(
1737 'pre_transform', record_pre_transform, "Pre transform")
1738- transform, root = self.get_transform()
1739+ transform, root = self.transform()
1740 old_root_id = transform.tree_file_id(root)
1741 transform.apply()
1742 self.assertEqual(old_root_id, self.wt.path2id(''))
1743@@ -3830,7 +3830,7 @@
1744 calls.append((tree, tt))
1745 MutableTree.hooks.install_named_hook(
1746 'post_transform', record_post_transform, "Post transform")
1747- transform, root = self.get_transform()
1748+ transform, root = self.transform()
1749 old_root_id = transform.tree_file_id(root)
1750 transform.apply()
1751 self.assertEqual(old_root_id, self.wt.path2id(''))
1752
1753=== modified file 'breezy/tests/test_upstream_import.py'
1754--- breezy/tests/test_upstream_import.py 2020-06-10 21:13:00 +0000
1755+++ breezy/tests/test_upstream_import.py 2020-07-04 03:10:44 +0000
1756@@ -284,7 +284,7 @@
1757 def get_empty_tt(self):
1758 b = self.make_repository('foo')
1759 null_tree = b.revision_tree(_mod_revision.NULL_REVISION)
1760- tt = transform.TransformPreview(null_tree)
1761+ tt = null_tree.preview_transform()
1762 tt.new_directory('', transform.ROOT_PARENT, b'tree-root')
1763 tt.fixup_new_roots()
1764 self.addCleanup(tt.finalize)
1765
1766=== modified file 'breezy/transform.py'
1767--- breezy/transform.py 2020-06-30 01:55:28 +0000
1768+++ breezy/transform.py 2020-07-04 03:10:44 +0000
1769@@ -2655,7 +2655,7 @@
1770 if wt.path2id('') != tree.path2id(''):
1771 wt.set_root_id(tree.path2id(''))
1772 wt.flush()
1773- tt = wt.get_transform()
1774+ tt = wt.transform()
1775 divert = set()
1776 try:
1777 pp.next_phase()
1778@@ -2920,7 +2920,7 @@
1779 """Revert a working tree's contents to those of a target tree."""
1780 pb = ui.ui_factory.nested_progress_bar()
1781 try:
1782- with target_tree.lock_read(), working_tree.get_transform(pb) as tt:
1783+ with target_tree.lock_read(), working_tree.transform(pb) as tt:
1784 pp = ProgressPhase("Revert phase", 3, pb)
1785 conflicts, merge_modified = _prepare_revert_transform(
1786 working_tree, target_tree, tt, filenames, backups, pp)
1787@@ -3296,7 +3296,7 @@
1788 :param target_tree: Tree to change
1789 :param source_tree: Tree to hard-link from
1790 """
1791- with target_tree.get_transform() as tt:
1792+ with target_tree.transform() as tt:
1793 for change in target_tree.iter_changes(source_tree, include_unchanged=True):
1794 if change.changed_content:
1795 continue
1796
1797=== modified file 'breezy/tree.py'
1798--- breezy/tree.py 2020-06-24 02:20:23 +0000
1799+++ breezy/tree.py 2020-07-04 03:10:44 +0000
1800@@ -21,15 +21,6 @@
1801
1802 from .lazy_import import lazy_import
1803 lazy_import(globals(), """
1804-
1805-from breezy import (
1806- conflicts as _mod_conflicts,
1807- debug,
1808- delta,
1809- filters,
1810- revision as _mod_revision,
1811- rules,
1812- )
1813 from breezy.i18n import gettext
1814 """)
1815
1816@@ -37,6 +28,7 @@
1817 errors,
1818 lock,
1819 osutils,
1820+ revision as _mod_revision,
1821 trace,
1822 )
1823 from .inter import InterObject
1824@@ -270,6 +262,7 @@
1825
1826 Each conflict is an instance of breezy.conflicts.Conflict.
1827 """
1828+ from . import conflicts as _mod_conflicts
1829 return _mod_conflicts.ConflictList()
1830
1831 def extras(self):
1832@@ -689,6 +682,7 @@
1833 or None if unknown
1834 :return: the list of filters - [] if there are none
1835 """
1836+ from . import debug, filters
1837 filter_pref_names = filters._get_registered_names()
1838 if len(filter_pref_names) == 0:
1839 return []
1840@@ -723,6 +717,7 @@
1841 :return: an iterator of tuple sequences, one per path-name.
1842 See _RulesSearcher.get_items for details on the tuple sequence.
1843 """
1844+ from . import rules
1845 if _default_searcher is None:
1846 _default_searcher = rules._per_user_searcher
1847 searcher = self._get_rules_searcher(_default_searcher)
1848@@ -759,6 +754,10 @@
1849 """Check if this tree support versioning a specific file kind."""
1850 return (kind in ('file', 'directory', 'symlink', 'tree-reference'))
1851
1852+ def preview_transform(self, pb=None):
1853+ """Obtain a transform object."""
1854+ raise NotImplementedError(self.preview_transform)
1855+
1856
1857 class InterTree(InterObject):
1858 """This class represents operations taking place between two Trees.
1859@@ -804,6 +803,7 @@
1860 a PathsNotVersionedError will be thrown.
1861 :param want_unversioned: Scan for unversioned paths.
1862 """
1863+ from . import delta
1864 trees = (self.source,)
1865 if extra_trees is not None:
1866 trees = trees + tuple(extra_trees)
1867
1868=== modified file 'breezy/upstream_import.py'
1869--- breezy/upstream_import.py 2020-06-21 02:15:25 +0000
1870+++ breezy/upstream_import.py 2020-07-04 03:10:44 +0000
1871@@ -232,7 +232,7 @@
1872
1873
1874 def import_archive(tree, archive_file):
1875- with tree.get_transform() as tt:
1876+ with tree.transform() as tt:
1877 import_archive_to_transform(tree, archive_file, tt)
1878 tt.apply()
1879

Subscribers

People subscribed via source and target branches