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