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: