comparison mercurial/copies.py @ 45670:a8fb29b05f92

salvaged: properly deal with salvaged file during copy tracing When salvaged files are encountered, the removal have been reverted and we should keep the rename information from the other side. The conditional was starting to be quite hairy, so we spell it out in multiple elif case for readability. This fixes the associated test cases introduced a while back. The changeset centric copy tracing is now (known) bug free. Differential Revision: https://phab.mercurial-scm.org/D9130
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 16 Sep 2020 21:00:02 +0200
parents 2693659c2b34
children f877b3628015
comparison
equal deleted inserted replaced
45669:e53778ad64bf 45670:a8fb29b05f92
369 other_tt = other[0] 369 other_tt = other[0]
370 if value[1] == other[1]: 370 if value[1] == other[1]:
371 continue 371 continue
372 # content from "major" wins, unless it is older 372 # content from "major" wins, unless it is older
373 # than the branch point or there is a merge 373 # than the branch point or there is a merge
374 if ( 374 if new_tt == other_tt:
375 new_tt == other_tt 375 minor[dest] = value
376 or not isancestor(new_tt, other_tt) 376 elif value[1] is None and dest in changes.salvaged:
377 or dest in changes.merged 377 pass
378 ): 378 elif other[1] is None and dest in changes.salvaged:
379 minor[dest] = value
380 elif not isancestor(new_tt, other_tt):
381 minor[dest] = value
382 elif dest in changes.merged:
379 minor[dest] = value 383 minor[dest] = value
380 384
381 385
382 def _revinfo_getter_extra(repo): 386 def _revinfo_getter_extra(repo):
383 """return a function that return multiple data given a <rev>"i 387 """return a function that return multiple data given a <rev>"i