~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/diff.py

  • Committer: Martin Pool
  • Date: 2005-06-24 07:06:38 UTC
  • Revision ID: mbp@sourcefrog.net-20050624070638-4b1230afde50b1a8
- files are only reported as modified if their name or parent has changed,
  not if their parent is renamed

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
from errors import BzrError
20
20
 
21
21
 
 
22
# TODO: Rather than building a changeset object, we should probably
 
23
# invoke callbacks on an object.  That object can either accumulate a
 
24
# list, write them out directly, etc etc.
 
25
 
22
26
def internal_diff(old_label, oldlines, new_label, newlines, to_file):
23
27
    import difflib
24
28
    
267
271
    Files that are both modified and renamed are listed only in
268
272
    renamed, with the text_modified flag true.
269
273
 
 
274
    Files are only considered renamed if their name has changed or
 
275
    their parent directory has changed.  Renaming a directory
 
276
    does not count as renaming all its contents.
 
277
 
270
278
    The lists are normally sorted when the delta is created.
271
279
    """
272
280
    def __init__(self):
392
400
            old_path = old_inv.id2path(file_id)
393
401
            new_path = new_inv.id2path(file_id)
394
402
 
 
403
            old_ie = old_inv[file_id]
 
404
            new_ie = new_inv[file_id]
 
405
 
395
406
            if specific_files:
396
407
                if (not is_inside_any(specific_files, old_path) 
397
408
                    and not is_inside_any(specific_files, new_path)):
410
421
            # the same and the parents are unchanged all the way up.
411
422
            # May not be worthwhile.
412
423
            
413
 
            if old_path != new_path:
 
424
            if (old_ie.name != new_ie.name
 
425
                or old_ie.parent_id != new_ie.parent_id):
414
426
                delta.renamed.append((old_path, new_path, file_id, kind,
415
427
                                      text_modified))
416
428
            elif text_modified: