equal
deleted
inserted
replaced
449 if f1 == f2: |
449 if f1 == f2: |
450 return f1 # a match |
450 return f1 # a match |
451 |
451 |
452 g1, g2 = f1.ancestors(), f2.ancestors() |
452 g1, g2 = f1.ancestors(), f2.ancestors() |
453 try: |
453 try: |
454 f1r, f2r = f1.rev(), f2.rev() |
454 f1r, f2r = f1.linkrev(), f2.linkrev() |
455 |
455 |
456 if f1r is None: |
456 if f1r is None: |
457 f1 = g1.next() |
457 f1 = g1.next() |
458 if f2r is None: |
458 if f2r is None: |
459 f2 = g2.next() |
459 f2 = g2.next() |
460 |
460 |
461 while True: |
461 while True: |
462 f1r, f2r = f1.rev(), f2.rev() |
462 f1r, f2r = f1.linkrev(), f2.linkrev() |
463 if f1r > f2r: |
463 if f1r > f2r: |
464 f1 = g1.next() |
464 f1 = g1.next() |
465 elif f2r > f1r: |
465 elif f2r > f1r: |
466 f2 = g2.next() |
466 f2 = g2.next() |
467 elif f1 == f2: |
467 elif f1 == f2: |
472 return False |
472 return False |
473 |
473 |
474 of = None |
474 of = None |
475 seen = set([f]) |
475 seen = set([f]) |
476 for oc in ctx(f, m1[f]).ancestors(): |
476 for oc in ctx(f, m1[f]).ancestors(): |
477 ocr = oc.rev() |
477 ocr = oc.linkrev() |
478 of = oc.path() |
478 of = oc.path() |
479 if of in seen: |
479 if of in seen: |
480 # check limit late - grab last rename before |
480 # check limit late - grab last rename before |
481 if ocr < limit: |
481 if ocr < limit: |
482 break |
482 break |