64
65
def compare(self, want_unchanged=False, specific_files=None,
65
extra_trees=None, require_versioned=False):
66
extra_trees=None, require_versioned=False, include_root=False,
67
want_unversioned=False):
67
69
('compare', self.source, self.target, want_unchanged,
68
specific_files, extra_trees, require_versioned)
70
specific_files, extra_trees, require_versioned,
71
include_root, want_unversioned)
89
92
tree.changes_from(tree2)
90
93
# pass in all optional arguments by position
91
tree.changes_from(tree2, 'unchanged', 'specific', 'extra', 'require')
94
tree.changes_from(tree2, 'unchanged', 'specific', 'extra',
92
96
# pass in all optional arguments by keyword
93
97
tree.changes_from(tree2,
94
98
specific_files='specific',
95
99
want_unchanged='unchanged',
96
100
extra_trees='extra',
97
101
require_versioned='require',
103
want_unversioned=True,
100
106
InterTree._optimisers = old_optimisers
101
107
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'),
109
('compare', tree2, tree, False, None, None, False, False, False),
110
('compare', tree2, tree, 'unchanged', 'specific', 'extra',
111
'require', True, False),
112
('compare', tree2, tree, 'unchanged', 'specific', 'extra',
113
'require', True, True),
106
114
], RecordingOptimiser.calls)
116
def test_changes_from_with_root(self):
117
"""Ensure the include_root option does what's expected."""
118
wt = self.make_branch_and_tree('.')
119
delta = wt.changes_from(wt.basis_tree())
120
self.assertEqual(len(delta.added), 0)
121
delta = wt.changes_from(wt.basis_tree(), wt, include_root=True)
122
self.assertEqual(len(delta.added), 1)
123
self.assertEqual(delta.added[0][0], '')
125
def test_changes_from_with_require_versioned(self):
126
"""Ensure the require_versioned option does what's expected."""
127
wt = self.make_branch_and_tree('.')
128
self.build_tree(['known_file', 'unknown_file'])
131
self.assertRaises(errors.PathsNotVersionedError,
132
wt.changes_from, wt.basis_tree(), wt, specific_files=['known_file',
133
'unknown_file'], require_versioned=True)
135
# we need to pass a known file with an unknown file to get this to
136
# fail when expected.
137
delta = wt.changes_from(wt.basis_tree(), wt,
138
specific_files=['known_file', 'unknown_file'] ,
139
require_versioned=False)
140
self.assertEqual(len(delta.added), 1)