Mercurial > hg
annotate tests/test-merge-combination-misc.t @ 47589:f5c24c124e07
dirstate: introduce an internal `_add` method
We want to split current user of `dirstate.add` between `hg add`-like cases and
update of the dirstate coming from update/merge.
To do this we will introduce new API. The first step is to introduces an
internal function that these new API migh use (or not use) to distinct between
the migrated users and the others.
Differential Revision: https://phab.mercurial-scm.org/D11010
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 07 Jul 2021 19:31:52 +0200 |
parents | e8b0c519dfb3 |
children |
rev | line source |
---|---|
46266
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
1 Testing recorded "modified" files for merge commit |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
2 ================================================== |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
3 |
42619
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
4 This file shows what hg says are "modified" files for a merge commit |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
5 (hg log -T {files}), somewhat exhaustively. |
46266
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
6 |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
7 This file test multiple corner case. |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
8 |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
9 For merges that involve files contents changing, check test-merge-combination-file-content.t |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
10 |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
11 For merges that involve executable bit changing, check test-merge-combination-exec-bytes.t |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
12 |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
13 |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
14 Case with multiple or zero merge ancestors, copies/renames, and identical file contents |
e8b0c519dfb3
test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
46265
diff
changeset
|
15 with different filelog revisions are not currently covered. |
42619
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
16 |
46265
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
42739
diff
changeset
|
17 $ . $TESTDIR/testlib/merge-combination-util.sh |
42619
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
18 |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
19 Files modified or cleanly merged, with no greatest common ancestors: |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
20 |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
21 $ hg init repo; cd repo |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
22 $ touch a0 b0; hg commit -qAm 0 |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
23 $ hg up -qr null; touch a1 b1; hg commit -qAm 1 |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
24 $ hg merge -qr 0; rm b*; hg commit -qAm 2 |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
25 $ hg log -r . -T '{files}\n' |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
26 b0 b1 |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
27 $ cd ../ |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
28 $ rm -rf repo |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
29 |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
30 A few cases of criss-cross merges involving deletions (listing all |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
31 such merges is probably too much). Both gcas contain $files, so we |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
32 expect the final merge to behave like a merge with a single gca |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
33 containing $files. |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
34 |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
35 $ hg init repo; cd repo |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
36 $ files="c1 u1 c2 u2" |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
37 $ touch $files; hg commit -qAm '0 root' |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
38 $ for f in $files; do echo f > $f; done; hg commit -qAm '1 gca1' |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
39 $ hg up -qr0; hg revert -qr 1 --all; hg commit -qAm '2 gca2' |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
40 $ hg up -qr 1; hg merge -qr 2; rm *1; hg commit -qAm '3 p1' |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
41 $ hg up -qr 2; hg merge -qr 1; rm *2; hg commit -qAm '4 p2' |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
42 $ hg merge -qr 3; echo f > u1; echo f > u2; rm -f c1 c2 |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
43 $ hg commit -qAm '5 merge with two gcas' |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
44 $ hg log -r . -T '{files}\n' # expecting u1 u2 |
42621
99ebde4fec99
commit: improve the files field of changelog for merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
42619
diff
changeset
|
45 |
42619
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
46 $ cd ../ |
20d0e59be79b
tests: show the files fields of changelogs for many merges
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
parents:
diff
changeset
|
47 $ rm -rf repo |