140
140
oldtmpf.close() # and delete
143
def show_diff(b, from_spec, specific_files, external_diff_options=None,
143
def show_diff(b, revision, specific_files, external_diff_options=None,
144
144
revision2=None, output=None):
145
145
"""Shortcut for showing the diff to the working tree.
151
None for 'basis tree', or otherwise the old revision to compare against.
151
None for each, or otherwise the old revision to compare against.
153
153
The more general form is show_diff_trees(), where the caller
154
154
supplies any two trees.
158
158
output = sys.stdout
160
if from_spec is None:
161
161
old_tree = b.basis_tree()
163
old_tree = b.revision_tree(from_spec.in_history(b).rev_id)
163
old_tree = b.revision_tree(revision.in_history(b).rev_id)
165
165
if revision2 is None:
166
166
new_tree = b.working_tree()
168
168
new_tree = b.revision_tree(revision2.in_history(b).rev_id)
170
return show_diff_trees(old_tree, new_tree, output, specific_files,
171
external_diff_options)
170
show_diff_trees(old_tree, new_tree, output, specific_files,
171
external_diff_options)
207
207
delta = compare_trees(old_tree, new_tree, want_unchanged=False,
208
208
specific_files=specific_files)
211
210
for path, file_id, kind in delta.removed:
213
211
print >>to_file, '=== removed %s %r' % (kind, path)
214
212
old_tree.inventory[file_id].diff(diff_file, old_label + path, old_tree,
215
213
DEVNULL, None, None, to_file)
216
214
for path, file_id, kind in delta.added:
218
215
print >>to_file, '=== added %s %r' % (kind, path)
219
216
new_tree.inventory[file_id].diff(diff_file, new_label + path, new_tree,
220
217
DEVNULL, None, None, to_file,
222
219
for (old_path, new_path, file_id, kind,
223
220
text_modified, meta_modified) in delta.renamed:
225
221
prop_str = get_prop_change(meta_modified)
226
222
print >>to_file, '=== renamed %s %r => %r%s' % (
227
223
kind, old_path, new_path, prop_str)
229
225
new_label, new_path, new_tree,
230
226
text_modified, kind, to_file, diff_file)
231
227
for path, file_id, kind, text_modified, meta_modified in delta.modified:
233
228
prop_str = get_prop_change(meta_modified)
234
229
print >>to_file, '=== modified %s %r%s' % (kind, path, prop_str)
235
230
if text_modified:
236
231
_maybe_diff_file_or_symlink(old_label, path, old_tree, file_id,
237
232
new_label, path, new_tree,
238
233
True, kind, to_file, diff_file)
242
236
def get_prop_change(meta_modified):