~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/diff.py

  • Committer: Robert Collins
  • Date: 2005-09-14 09:01:06 UTC
  • mto: (1185.1.12)
  • mto: This revision was merged to the branch mainline in revision 1390.
  • Revision ID: robertc@robertcollins.net-20050914090106-50ddfad9500a8ae9
make diff lsdiff/filterdiff friendly

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
    ud = difflib.unified_diff(oldlines, newlines,
46
46
                              fromfile=old_label, tofile=new_label)
47
47
 
 
48
    ud = list(ud)
48
49
    # work-around for difflib being too smart for its own good
49
50
    # if /dev/null is "1,0", patch won't recognize it as /dev/null
50
51
    if not oldlines:
51
 
        ud = list(ud)
52
52
        ud[2] = ud[2].replace('-1,0', '-0,0')
53
53
    elif not newlines:
54
 
        ud = list(ud)
55
54
        ud[2] = ud[2].replace('+1,0', '+0,0')
 
55
    # work around for difflib emitting random spaces after the label
 
56
    ud[0] = ud[0][:-2] + '\n'
 
57
    ud[1] = ud[1][:-2] + '\n'
56
58
 
57
59
    for line in ud:
58
60
        to_file.write(line)
211
213
                          specific_files=specific_files)
212
214
 
213
215
    for path, file_id, kind in delta.removed:
214
 
        print >>to_file, '*** removed %s %r' % (kind, path)
 
216
        print >>to_file, '=== removed %s %r' % (kind, path)
215
217
        if kind == 'file':
216
218
            diff_file(old_label + path,
217
219
                      old_tree.get_file(file_id).readlines(),
220
222
                      to_file)
221
223
 
222
224
    for path, file_id, kind in delta.added:
223
 
        print >>to_file, '*** added %s %r' % (kind, path)
 
225
        print >>to_file, '=== added %s %r' % (kind, path)
224
226
        if kind == 'file':
225
227
            diff_file(DEVNULL,
226
228
                      [],
229
231
                      to_file)
230
232
 
231
233
    for old_path, new_path, file_id, kind, text_modified in delta.renamed:
232
 
        print >>to_file, '*** renamed %s %r => %r' % (kind, old_path, new_path)
 
234
        print >>to_file, '=== renamed %s %r => %r' % (kind, old_path, new_path)
233
235
        if text_modified:
234
236
            diff_file(old_label + old_path,
235
237
                      old_tree.get_file(file_id).readlines(),
238
240
                      to_file)
239
241
 
240
242
    for path, file_id, kind in delta.modified:
241
 
        print >>to_file, '*** modified %s %r' % (kind, path)
 
243
        print >>to_file, '=== modified %s %r' % (kind, path)
242
244
        if kind == 'file':
243
245
            diff_file(old_label + path,
244
246
                      old_tree.get_file(file_id).readlines(),