Mercurial > hg
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 |