211
212
delta = compare_trees(old_tree, new_tree, want_unchanged=False,
212
213
specific_files=specific_files)
214
216
for path, file_id, kind in delta.removed:
215
218
print >>to_file, '=== removed %s %r' % (kind, path)
217
diff_file(old_label + path,
218
old_tree.get_file(file_id).readlines(),
219
old_tree.inventory[file_id].diff(diff_file, old_label + path, old_tree,
220
DEVNULL, None, None, to_file)
223
221
for path, file_id, kind in delta.added:
224
223
print >>to_file, '=== added %s %r' % (kind, path)
229
new_tree.get_file(file_id).readlines(),
232
for old_path, new_path, file_id, kind, text_modified in delta.renamed:
233
print >>to_file, '=== renamed %s %r => %r' % (kind, old_path, new_path)
224
new_tree.inventory[file_id].diff(diff_file, new_label + path, new_tree,
225
DEVNULL, None, None, to_file,
227
for (old_path, new_path, file_id, kind,
228
text_modified, meta_modified) in delta.renamed:
230
prop_str = get_prop_change(meta_modified)
231
print >>to_file, '=== renamed %s %r => %r%s' % (
232
kind, old_path, new_path, prop_str)
233
_maybe_diff_file_or_symlink(old_label, old_path, old_tree, file_id,
234
new_label, new_path, new_tree,
235
text_modified, kind, to_file, diff_file)
236
for path, file_id, kind, text_modified, meta_modified in delta.modified:
238
prop_str = get_prop_change(meta_modified)
239
print >>to_file, '=== modified %s %r%s' % (kind, path, prop_str)
234
240
if text_modified:
235
diff_file(old_label + old_path,
236
old_tree.get_file(file_id).readlines(),
237
new_label + new_path,
238
new_tree.get_file(file_id).readlines(),
241
for path, file_id, kind in delta.modified:
242
print >>to_file, '=== modified %s %r' % (kind, path)
244
diff_file(old_label + path,
245
old_tree.get_file(file_id).readlines(),
247
new_tree.get_file(file_id).readlines(),
241
_maybe_diff_file_or_symlink(old_label, path, old_tree, file_id,
242
new_label, path, new_tree,
243
True, kind, to_file, diff_file)
247
def get_prop_change(meta_modified):
249
return " (properties changed)"
254
def _maybe_diff_file_or_symlink(old_label, old_path, old_tree, file_id,
255
new_label, new_path, new_tree, text_modified,
256
kind, to_file, diff_file):
258
new_entry = new_tree.inventory[file_id]
259
old_tree.inventory[file_id].diff(diff_file,
260
old_label + old_path, old_tree,
261
new_label + new_path, new_entry,