annotate tests/test-merge-combination-misc.t @ 50330:eb07591825fa stable

rhg: show a bug in the rust implementation of path_encode introduced recently In commit 96d31efd21f7 I did a refactoring where I dropped a chunk of code by accident, thus introducing a bug. This commit adds a test demonstrating that bug.
author Arseniy Alekseyev <aalekseyev@janestreet.com>
date Fri, 24 Mar 2023 19:01:03 +0000
parents e8b0c519dfb3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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