Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/patch.py @ 3693:454b3a8cdf28
diff: improve detection of renames when diffing across many revisions
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Mon, 20 Nov 2006 19:32:35 -0200 |
parents | eb0b4a2d70a9 |
children | c0b1a0c72c7d |
comparison
equal
deleted
inserted
replaced
3692:49136e90517b | 3693:454b3a8cdf28 |
---|---|
469 | 469 |
470 def renamedbetween(f, n1, n2): | 470 def renamedbetween(f, n1, n2): |
471 r1, r2 = map(repo.changelog.rev, (n1, n2)) | 471 r1, r2 = map(repo.changelog.rev, (n1, n2)) |
472 src = None | 472 src = None |
473 while r2 > r1: | 473 while r2 > r1: |
474 cl = getchangelog(n2)[0] | 474 cl = getchangelog(n2) |
475 m = getmanifest(cl) | 475 if f in cl[3]: |
476 try: | 476 m = getmanifest(cl[0]) |
477 src = getfile(f).renamed(m[f]) | 477 try: |
478 except KeyError: | 478 src = getfile(f).renamed(m[f]) |
479 return None | 479 except KeyError: |
480 if src: | 480 return None |
481 f = src[0] | 481 if src: |
482 f = src[0] | |
482 n2 = repo.changelog.parents(n2)[0] | 483 n2 = repo.changelog.parents(n2)[0] |
483 r2 = repo.changelog.rev(n2) | 484 r2 = repo.changelog.rev(n2) |
484 return src | 485 return src |
485 | 486 |
486 if node2: | 487 if node2: |