64
64
def compare(self, want_unchanged=False, specific_files=None,
65
extra_trees=None, require_versioned=False):
65
extra_trees=None, require_versioned=False, include_root=False):
67
67
('compare', self.source, self.target, want_unchanged,
68
specific_files, extra_trees, require_versioned)
68
specific_files, extra_trees, require_versioned,
79
80
"""This test tests the way Tree.compare() uses InterTree."""
80
81
old_optimisers = InterTree._optimisers
82
InterTree._optimisers = set()
83
InterTree._optimisers = []
83
84
RecordingOptimiser.calls = []
84
85
InterTree.register_optimiser(RecordingOptimiser)
85
86
tree = self.make_branch_and_tree('1')
89
90
tree.changes_from(tree2)
90
91
# pass in all optional arguments by position
91
tree.changes_from(tree2, 'unchanged', 'specific', 'extra', 'require')
92
tree.changes_from(tree2, 'unchanged', 'specific', 'extra',
92
94
# pass in all optional arguments by keyword
93
95
tree.changes_from(tree2,
94
96
specific_files='specific',
95
97
want_unchanged='unchanged',
96
98
extra_trees='extra',
97
99
require_versioned='require',
100
103
InterTree._optimisers = old_optimisers
101
104
self.assertEqual(
103
('compare', tree2, tree, False, None, None, False),
104
('compare', tree2, tree, 'unchanged', 'specific', 'extra', 'require'),
105
('compare', tree2, tree, 'unchanged', 'specific', 'extra', 'require'),
106
('compare', tree2, tree, False, None, None, False, False),
107
('compare', tree2, tree, 'unchanged', 'specific', 'extra',
109
('compare', tree2, tree, 'unchanged', 'specific', 'extra',
106
111
], RecordingOptimiser.calls)
113
def test_changes_from_with_root(self):
114
"""Ensure the include_root option does what's expected."""
115
wt = self.make_branch_and_tree('.')
116
delta = wt.changes_from(wt.basis_tree())
117
self.assertEqual(len(delta.added), 0)
118
delta = wt.changes_from(wt.basis_tree(), wt, include_root=True)
119
self.assertEqual(len(delta.added), 1)
120
self.assertEqual(delta.added[0][0], '')