Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 12 Dec 2020 19:35:08 +0100] rev 46607
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 46606
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 46605
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 46604
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
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 20:46:33 +0100] rev 46603
test-copies: introduce case combining the `p` and `q` branch
That case involves conflicting copies information from each branch. It is
similar to the `mAEm` / `mEAm` case except this case actual content merge is
involved too.
Differential Revision: https://phab.mercurial-scm.org/D10057
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 20:47:15 +0100] rev 46602
test-copies: add a `q` branch similar to the `e` but on the new files
This branch will be used to create merge case that mirror ones involving the `e` branch.
Differential Revision: https://phab.mercurial-scm.org/D10056
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 20:47:07 +0100] rev 46601
test-copies: add a `p` branch similar to the `a` but on the new files
This branch will be used to create merge case that mirror ones involving the `a` branch.
Differential Revision: https://phab.mercurial-scm.org/D10055
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 18:57:09 +0100] rev 46600
test-copies: move the new files in the `i` branch
The initial branch is moving some of the "same content" file around. We do the
same for the "different content" before start to implement more tests.
The new files have harmless impact of various existing tests.
Differential Revision: https://phab.mercurial-scm.org/D10054
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 17:06:12 +0100] rev 46599
test-copies: add 3 new files with their own content
The new `p`, `q` and `r` file mirror the `a`, `b` and `h` but with different
content for each files. This will be used to create "mirror" test case that
involve actual merge happening.
For now, we only add the file to keep patches small and easier to review.
Differential Revision: https://phab.mercurial-scm.org/D10053
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 16:37:55 +0100] rev 46598
test-copies: introduce merge chaing test for the A/E + change tests
This is similar to the chaining test we have for the A/E merges (without change).
The current result of this tests is wrong, as for they "without change counter
part". This will be fixed by a later changesets.
Differential Revision: https://phab.mercurial-scm.org/D10052
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 Feb 2021 19:39:33 +0100] rev 46597
test-copies: add a "change during merge" variant to the A+E test
Checks inline comment for details.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 22:56:46 +0100] rev 46596
test-copies: filter out the linkrev part of `debugindex`
It is not really useful for the tests and is a large source of churn when adding
more revisions to the tests.
Differential Revision: https://phab.mercurial-scm.org/D10050
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 22:27:25 +0100] rev 46595
test-copies: use "case-id" instead of revision number when listing sidedata
The revision number are not very informative and can change when new changeset
are added, creating unnecessary churn. We change the template before adding more
test to improve clarify of the over changesets.
Differential Revision: https://phab.mercurial-scm.org/D10049
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Feb 2021 21:08:45 +0100] rev 46594
test-copies: remove revision number from log
Differential Revision: https://phab.mercurial-scm.org/D10048
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 17:56:56 +0100] rev 46593
test-copies: add test chaining multiple merge
Right now, the copy tracing logic take the right decision for merges, but it
does not keep track of the right information about these decision and can fall
into later traps. We start with highlighting this possibility by adding new
tests, and we will fix them later.
Check the inline test documentation for details.
Differential Revision: https://phab.mercurial-scm.org/D9611
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 17:56:30 +0100] rev 46592
test-copies: add test chaining multiple merges
Right now, the copy tracing logic take the right decision for merges, but it
does not keep track of the right information about these decision and can fall
into later traps. We start with highlighting this possibility by adding new
tests, and we will fix them later.
Check the inline test documentation for details.
Differential Revision: https://phab.mercurial-scm.org/D9610
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 15:43:54 +0100] rev 46591
test-copies: add test chaining multiple merges
Right now, the copy tracing logic take the right decision for merges, but it
does not keep track of the right information about these decision and can fall
into later traps. We start with highlighting this possibility by adding new
tests, and we will fix them later.
Check the inline test documentation for details.
Differential Revision: https://phab.mercurial-scm.org/D9609
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Feb 2021 13:49:55 +0100] rev 46590
test-copies: add subcase titles for various "conflicting" information variant
This make the transitions between case clearer.
Differential Revision: https://phab.mercurial-scm.org/D10047
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Feb 2021 12:45:16 +0100] rev 46589
test-copies: improve description of the B+F case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10046
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 06:02:09 +0100] rev 46588
test-copies: improve description of the C+H case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10045
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:58:22 +0100] rev 46587
test-copies: improve description of the B+C "revert/restore" case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10044
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:54:55 +0100] rev 46586
test-copies: improve description of the G+C case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10043
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:46:32 +0100] rev 46585
test-copies: improve description of the G+F case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10042
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:39:22 +0100] rev 46584
test-copies: improve description of the D+G case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10041
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:35:18 +0100] rev 46583
test-copies: improve description of the A+E case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10040
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:32:20 +0100] rev 46582
test-copies: improve description of the B+D case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10039
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:29:04 +0100] rev 46581
test-copies: improve description of the B+C case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10038
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:26:46 +0100] rev 46580
test-copies: improve description of the A+B case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10037
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:19:23 +0100] rev 46579
test-copies: use intermediate variable some commit descriptions
Right now, everything mostly says "simple merge", we want to use something a bit
more descriptive. Before doing any changes, we do most of the churn. This helps
the next sets of changesets to be clearer.
Differential Revision: https://phab.mercurial-scm.org/D10036
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 Feb 2021 18:48:45 +0100] rev 46578
test-copies: don't use empty file for "same content" cases
For main case (using filelog or sidedata), this lead to the following hash
change.
Changesets:
- 01c2f5eabdc4ce2bdee42b5f86311955e6c8f573 → 319179230cc87769ab3a861ebffe7a534ebb3d85
- 01c2f5eabdc4 → 319179230cc8
- c72365ee036fca4fb27fd745459bfb6ea1ac6993 → 6cbc9c2b7b391dd738603173717c601648d3735f
- c72365ee036f → 6cbc9c2b7b39
File revision for `f`:
- 0dd616bc7ab1a111921d95d76f69cda5c2ac539c → cedeacc5bf5d9b9be4d7f8394d33a5349bb29c6e
- 0dd616bc7ab1 → cedeacc5bf5d
- eb806e34ef6be4c264effd5933d31004ad15a793 → ffb76cd765422a18759a335d8a81fa2bd455be6b
- eb806e34ef6b → ffb76cd76542
- 6da5a2eecb9c833f830b67a4972366d49a9a142c → 08d1ff5926fbd0285cdeb044cbe8ab651687e86a
- 6da5a2eecb9c → 08d1ff5926fb
File revision for `d`:
- 7bded9d9da1f7bf9bf7cbfb24fe1e6ccf68ec440 → ba177bbb45ea930ee48469a55d40224537bd57a9
For the "extra in changeset" case we get the following change for file `d`:
- 68d5bca9df0577b6bc2ea30ca724e13ead60da81 → b894de5c94aadcb4894ea7c358389819c27fbcce
- 68d5bca9df05 → b894de5c94aa
- b80de5d138758541c5f05265ad144ab9fa86d1db → 56647659eff080e06e45c18ea9e848836dadea71
- b80de5d13875 → 56647659eff0