equal
deleted
inserted
replaced
465 modified, added, removed = map(filterfiles, (modified, added, removed)) |
465 modified, added, removed = map(filterfiles, (modified, added, removed)) |
466 |
466 |
467 if not modified and not added and not removed: |
467 if not modified and not added and not removed: |
468 return |
468 return |
469 |
469 |
|
470 # returns False if there was no rename between n1 and n2 |
|
471 # returns None if the file was created between n1 and n2 |
|
472 # returns the (file, node) present in n1 that was renamed to f in n2 |
470 def renamedbetween(f, n1, n2): |
473 def renamedbetween(f, n1, n2): |
471 r1, r2 = map(repo.changelog.rev, (n1, n2)) |
474 r1, r2 = map(repo.changelog.rev, (n1, n2)) |
472 orig = f |
475 orig = f |
473 src = None |
476 src = None |
474 while r2 > r1: |
477 while r2 > r1: |
481 return None |
484 return None |
482 if src: |
485 if src: |
483 f = src[0] |
486 f = src[0] |
484 n2 = repo.changelog.parents(n2)[0] |
487 n2 = repo.changelog.parents(n2)[0] |
485 r2 = repo.changelog.rev(n2) |
488 r2 = repo.changelog.rev(n2) |
486 if orig == f: |
|
487 return None |
|
488 cl = getchangelog(n1) |
489 cl = getchangelog(n1) |
489 m = getmanifest(cl[0]) |
490 m = getmanifest(cl[0]) |
490 if f not in m: |
491 if f not in m: |
491 return None |
492 return None |
|
493 if f == orig: |
|
494 return False |
492 return f, m[f] |
495 return f, m[f] |
493 |
496 |
494 if node2: |
497 if node2: |
495 change = getchangelog(node2) |
498 change = getchangelog(node2) |
496 mmap2 = getmanifest(change[0]) |
499 mmap2 = getmanifest(change[0]) |
516 src = repo.dirstate.copied(f) |
519 src = repo.dirstate.copied(f) |
517 parent = repo.dirstate.parents()[0] |
520 parent = repo.dirstate.parents()[0] |
518 if src: |
521 if src: |
519 f = src |
522 f = src |
520 of = renamedbetween(f, node1, parent) |
523 of = renamedbetween(f, node1, parent) |
521 if of: |
524 if of or of is None: |
522 return of |
525 return of |
523 elif src: |
526 elif src: |
524 cl = getchangelog(parent)[0] |
527 cl = getchangelog(parent)[0] |
525 return (src, getmanifest(cl)[src]) |
528 return (src, getmanifest(cl)[src]) |
526 else: |
529 else: |