Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 23 Dec 2020 03:04:33 +0100] rev 46566
copies-rust: fix reverted argument when merging tiny minor or major
The argument where not passed in the right other. This is not caught by the test
(yet) because it is a sub case of a special case. Am I adding this to my list of
things to test. Using test directly in Rust would be appropriate here. However
we don't have the ability to test this code that way yet, and I am focussing on
other part of that work right now.
Differential Revision: https://phab.mercurial-scm.org/D9657
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 21 Dec 2020 08:42:30 +0100] rev 46565
copies-rust: rename TimeStampedPathCopy to CopySource
Same rational as the previous changesets. CopySource is a clear descriptive name
that does not depends on an implementation details that we are about to the
change.
Differential Revision: https://phab.mercurial-scm.org/D9642
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 15 Dec 2020 17:26:00 +0100] rev 46564
copies-rust: rename TimeStampedPathCopies to InternalPathCopies
We are looking into moving away from TimeStampedPathCopy (that use is_ancestors
call to detect overwrite) in favor of an approach that does not requires
is_ancestors calls. Yet we will still need an internal representation that
differs from the returned result.
So we call it "InternalPathCopies" which is generic but clear.
Differential Revision: https://phab.mercurial-scm.org/D9641
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 12 Dec 2020 19:35:08 +0100] rev 46563
copies: detect case when a merge decision overwrite previous data
We now detect and record when a merge case required special logic (eg: thing
that append during the merge, ambiguity leading to picking p1 data, etc) and we
explicitly mark the result as superseding the previous data.
This fixes the family of test we previously added.
Differential Revision: https://phab.mercurial-scm.org/D9613
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 19:26:33 +0100] rev 46562
copies: rearrange all value comparison conditional
To properly handle the newly tested case (chaining of merges) we will need to
detect more accurately when an actualy merging of the copy information (and
superseed the two existing data). Before starting to do so, we need to
reorganise the values comparison to introduce different conditional branches
when such actual merging is needed/detected.
To avoid mixing too many change in this complicated code, we do the
reorganisation before adding the "overwrite detection" logic in the next
changesets.
Differential Revision: https://phab.mercurial-scm.org/D9612
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 Feb 2021 12:21:00 +0100] rev 46561
test-copies: introduce merge chains test for the P/Q merges
This is similar to the chaining test we have for the A/E merges.
The current result of this tests is wrong, as for the other test of the same
familly. This will be fixed by a later changesets.
Differential Revision: https://phab.mercurial-scm.org/D10059
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 Feb 2021 11:56:58 +0100] rev 46560
test-copies: add a case involving the `b` and a new `r` branch
That case involve a branch overwriting copies information from the other one.
It is similar to the `mBFm` / `mFBm` case except this case actual content merge
is involved too.
Differential Revision: https://phab.mercurial-scm.org/D10058