Mercurial > hg
annotate tests/testlib/merge-combination-util.sh @ 46531:d46885119f90
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
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 22 Feb 2021 18:48:45 +0100 |
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 # genmerges is the workhorse of the test-merge-combination-*.t tests. |
46265
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
2 |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
3 # Given: |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
4 # - a `range` function describing the possible values for file a |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
5 # - a `isgood` function to filter out uninteresting combination |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
6 # - a `createfile` function to actually write the values for file a on the |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
7 # filesystem |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
8 # |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
9 # it print a series of lines that look like: abcd C: output of -T {files} |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
10 # describing the file a at respectively the base, p2, p1, merge |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
11 # revision. "C" indicates that hg merge had conflicts. |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
12 |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
13 genmerges () { |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
14 |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
15 (LC_ALL=C type range | grep -q 'function') || (echo >&2 "missing function: range") |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
16 (LC_ALL=C type isgood | grep -q 'function') || (echo >&2 "missing function: isgood") |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
17 (LC_ALL=C type createfile | grep -q 'function') || (echo >&2 "missing function: createfile") |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
18 |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
19 for base in `range` -; do |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
20 for r1 in `range $base` -; do |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
21 for r2 in `range $base $r1` -; do |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
22 for m in `range $base $r1 $r2` -; do |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
23 line="$base$r1$r2$m" |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
24 isgood $line || continue |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
25 hg init repo |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
26 cd repo |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
27 make_commit () { |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
28 v=$1; msg=$2; file=$3; |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
29 if [ $v != - ]; then |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
30 createfile $v |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
31 else |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
32 if [ -f a ] |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
33 then rm a |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
34 else touch $file |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
35 fi |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
36 fi |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
37 hg commit -q -Am $msg || exit 123 |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
38 } |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
39 echo foo > foo |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
40 make_commit $base base b |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
41 make_commit $r1 r1 c |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
42 hg up -r 0 -q |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
43 make_commit $r2 r2 d |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
44 hg merge -q -r 1 > ../output 2>&1 |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
45 if [ $? -ne 0 ]; then rm -f *.orig; hg resolve -m --all -q; fi |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
46 if [ -s ../output ]; then conflicts=" C"; else conflicts=" "; fi |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
47 make_commit $m m e |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
48 if [ $m = $r1 ] && [ $m = $r2 ] |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
49 then expected= |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
50 elif [ $m = $r1 ] |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
51 then if [ $base = $r2 ] |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
52 then expected= |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
53 else expected=a |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
54 fi |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
55 elif [ $m = $r2 ] |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
56 then if [ $base = $r1 ] |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
57 then expected= |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
58 else expected=a |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
59 fi |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
60 else expected=a |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
61 fi |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
62 got=`hg log -r 3 --template '{files}\n' | tr -d 'e '` |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
63 if [ "$got" = "$expected" ] |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
64 then echo "$line$conflicts: agree on \"$got\"" |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
65 else echo "$line$conflicts: hg said \"$got\", expected \"$expected\"" |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
66 fi |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
67 cd ../ |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
68 rm -rf repo |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
69 done |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
70 done |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
71 done |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
72 done |
8045e4aa366b
test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
73 } |