Show More
@@ -1,84 +1,22 b'' | |||
|
1 | Testing recorded "modified" files for merge commit | |
|
2 | ================================================== | |
|
3 | ||
|
4 | #require execbit | |
|
5 | ||
|
1 | 6 | This file shows what hg says are "modified" files for a merge commit |
|
2 | 7 | (hg log -T {files}), somewhat exhaustively. |
|
3 | It shows merges that involves files contents changing, and merges that | |
|
4 | involve executable bit changing, but not merges with multiple or zero | |
|
5 | merge ancestors, nor copies/renames, and nor identical file contents | |
|
6 | with different filelog revisions. | |
|
8 | ||
|
9 | This test file shows merges that involves executable bit changing, check test-merge-combination-exec-bytes.t | |
|
10 | ||
|
11 | For merges that involve files contents changing, check test-merge-combination-file-content.t | |
|
12 | ||
|
13 | For testing of multiple corner case, check test-merge-combination-misc.t | |
|
14 | ||
|
15 | Case with multiple or zero merge ancestors, copies/renames, and identical file contents | |
|
16 | with different filelog revisions are not currently covered. | |
|
7 | 17 | |
|
8 | 18 | $ . $TESTDIR/testlib/merge-combination-util.sh |
|
9 | 19 | |
|
10 | All the merges of various file contents. | |
|
11 | ||
|
12 | $ range () { | |
|
13 | > max=0 | |
|
14 | > for i in $@; do | |
|
15 | > if [ $i = - ]; then continue; fi | |
|
16 | > if [ $i -gt $max ]; then max=$i; fi | |
|
17 | > done | |
|
18 | > $TESTDIR/seq.py `expr $max + 1` | |
|
19 | > } | |
|
20 | $ isgood () { true; } | |
|
21 | $ createfile () { | |
|
22 | > if [ -f a ] && [ "`cat a`" = $1 ] | |
|
23 | > then touch $file | |
|
24 | > else echo $v > a | |
|
25 | > fi | |
|
26 | > } | |
|
27 | ||
|
28 | $ genmerges | |
|
29 | 1111 : agree on "" | |
|
30 | 1112 : agree on "a" | |
|
31 | 111- : agree on "a" | |
|
32 | 1121 : agree on "a" | |
|
33 | 1122 : agree on "" | |
|
34 | 1123 : agree on "a" | |
|
35 | 112- : agree on "a" | |
|
36 | 11-1 : hg said "", expected "a" | |
|
37 | 11-2 : agree on "a" | |
|
38 | 11-- : agree on "" | |
|
39 | 1211 : agree on "a" | |
|
40 | 1212 : agree on "" | |
|
41 | 1213 : agree on "a" | |
|
42 | 121- : agree on "a" | |
|
43 | 1221 : agree on "a" | |
|
44 | 1222 : agree on "" | |
|
45 | 1223 : agree on "a" | |
|
46 | 122- : agree on "a" | |
|
47 | 1231 C: agree on "a" | |
|
48 | 1232 C: agree on "a" | |
|
49 | 1233 C: agree on "a" | |
|
50 | 1234 C: agree on "a" | |
|
51 | 123- C: agree on "a" | |
|
52 | 12-1 C: agree on "a" | |
|
53 | 12-2 C: hg said "", expected "a" | |
|
54 | 12-3 C: agree on "a" | |
|
55 | 12-- C: agree on "a" | |
|
56 | 1-11 : hg said "", expected "a" | |
|
57 | 1-12 : agree on "a" | |
|
58 | 1-1- : agree on "" | |
|
59 | 1-21 C: agree on "a" | |
|
60 | 1-22 C: hg said "", expected "a" | |
|
61 | 1-23 C: agree on "a" | |
|
62 | 1-2- C: agree on "a" | |
|
63 | 1--1 : agree on "a" | |
|
64 | 1--2 : agree on "a" | |
|
65 | 1--- : agree on "" | |
|
66 | -111 : agree on "" | |
|
67 | -112 : agree on "a" | |
|
68 | -11- : agree on "a" | |
|
69 | -121 C: agree on "a" | |
|
70 | -122 C: agree on "a" | |
|
71 | -123 C: agree on "a" | |
|
72 | -12- C: agree on "a" | |
|
73 | -1-1 : agree on "" | |
|
74 | -1-2 : agree on "a" | |
|
75 | -1-- : agree on "a" | |
|
76 | --11 : agree on "" | |
|
77 | --12 : agree on "a" | |
|
78 | --1- : agree on "a" | |
|
79 | ---1 : agree on "a" | |
|
80 | ---- : agree on "" | |
|
81 | ||
|
82 | 20 | All the merges of executable bit. |
|
83 | 21 | |
|
84 | 22 | $ range () { |
@@ -97,7 +35,6 b' All the merges of executable bit.' | |||
|
97 | 35 | > fi |
|
98 | 36 | > } |
|
99 | 37 | |
|
100 | #if execbit | |
|
101 | 38 | $ genmerges |
|
102 | 39 | fffx : agree on "a" |
|
103 | 40 | ffxf : agree on "a" |
@@ -124,34 +61,3 b' All the merges of executable bit.' | |||
|
124 | 61 | -fx- C: agree on "a" |
|
125 | 62 | -f-x : hg said "", expected "a" |
|
126 | 63 | --fx : agree on "a" |
|
127 | #endif | |
|
128 | ||
|
129 | Files modified or cleanly merged, with no greatest common ancestors: | |
|
130 | ||
|
131 | $ hg init repo; cd repo | |
|
132 | $ touch a0 b0; hg commit -qAm 0 | |
|
133 | $ hg up -qr null; touch a1 b1; hg commit -qAm 1 | |
|
134 | $ hg merge -qr 0; rm b*; hg commit -qAm 2 | |
|
135 | $ hg log -r . -T '{files}\n' | |
|
136 | b0 b1 | |
|
137 | $ cd ../ | |
|
138 | $ rm -rf repo | |
|
139 | ||
|
140 | A few cases of criss-cross merges involving deletions (listing all | |
|
141 | such merges is probably too much). Both gcas contain $files, so we | |
|
142 | expect the final merge to behave like a merge with a single gca | |
|
143 | containing $files. | |
|
144 | ||
|
145 | $ hg init repo; cd repo | |
|
146 | $ files="c1 u1 c2 u2" | |
|
147 | $ touch $files; hg commit -qAm '0 root' | |
|
148 | $ for f in $files; do echo f > $f; done; hg commit -qAm '1 gca1' | |
|
149 | $ hg up -qr0; hg revert -qr 1 --all; hg commit -qAm '2 gca2' | |
|
150 | $ hg up -qr 1; hg merge -qr 2; rm *1; hg commit -qAm '3 p1' | |
|
151 | $ hg up -qr 2; hg merge -qr 1; rm *2; hg commit -qAm '4 p2' | |
|
152 | $ hg merge -qr 3; echo f > u1; echo f > u2; rm -f c1 c2 | |
|
153 | $ hg commit -qAm '5 merge with two gcas' | |
|
154 | $ hg log -r . -T '{files}\n' # expecting u1 u2 | |
|
155 | ||
|
156 | $ cd ../ | |
|
157 | $ rm -rf repo |
@@ -1,9 +1,17 b'' | |||
|
1 | Testing recorded "modified" files for merge commit | |
|
2 | ================================================== | |
|
3 | ||
|
1 | 4 | This file shows what hg says are "modified" files for a merge commit |
|
2 | 5 | (hg log -T {files}), somewhat exhaustively. |
|
3 | It shows merges that involves files contents changing, and merges that | |
|
4 | involve executable bit changing, but not merges with multiple or zero | |
|
5 | merge ancestors, nor copies/renames, and nor identical file contents | |
|
6 | with different filelog revisions. | |
|
6 | ||
|
7 | This test file shows merges that involves files contents changing | |
|
8 | ||
|
9 | For merges taht involves executable bit changing, check test-merge-combination-exec-bytes.t | |
|
10 | ||
|
11 | For testing of multiple corner case, check test-merge-combination-misc.t | |
|
12 | ||
|
13 | Case with multiple or zero merge ancestors, copies/renames, and identical file contents | |
|
14 | with different filelog revisions are not currently covered. | |
|
7 | 15 | |
|
8 | 16 | $ . $TESTDIR/testlib/merge-combination-util.sh |
|
9 | 17 | |
@@ -78,80 +86,3 b' All the merges of various file contents.' | |||
|
78 | 86 | --1- : agree on "a" |
|
79 | 87 | ---1 : agree on "a" |
|
80 | 88 | ---- : agree on "" |
|
81 | ||
|
82 | All the merges of executable bit. | |
|
83 | ||
|
84 | $ range () { | |
|
85 | > max=a | |
|
86 | > for i in $@; do | |
|
87 | > if [ $i = - ]; then continue; fi | |
|
88 | > if [ $i > $max ]; then max=$i; fi | |
|
89 | > done | |
|
90 | > if [ $max = a ]; then echo f; else echo f x; fi | |
|
91 | > } | |
|
92 | $ isgood () { case $line in *f*x*) true;; *) false;; esac; } | |
|
93 | $ createfile () { | |
|
94 | > if [ -f a ] && (([ -x a ] && [ $v = x ]) || (! [ -x a ] && [ $v != x ])) | |
|
95 | > then touch $file | |
|
96 | > else touch a; if [ $v = x ]; then chmod +x a; else chmod -x a; fi | |
|
97 | > fi | |
|
98 | > } | |
|
99 | ||
|
100 | #if execbit | |
|
101 | $ genmerges | |
|
102 | fffx : agree on "a" | |
|
103 | ffxf : agree on "a" | |
|
104 | ffxx : agree on "" | |
|
105 | ffx- : agree on "a" | |
|
106 | ff-x : hg said "", expected "a" | |
|
107 | fxff : hg said "", expected "a" | |
|
108 | fxfx : hg said "a", expected "" | |
|
109 | fxf- : agree on "a" | |
|
110 | fxxf : agree on "a" | |
|
111 | fxxx : agree on "" | |
|
112 | fxx- : agree on "a" | |
|
113 | fx-f : hg said "", expected "a" | |
|
114 | fx-x : hg said "", expected "a" | |
|
115 | fx-- : hg said "", expected "a" | |
|
116 | f-fx : agree on "a" | |
|
117 | f-xf : agree on "a" | |
|
118 | f-xx : hg said "", expected "a" | |
|
119 | f-x- : agree on "a" | |
|
120 | f--x : agree on "a" | |
|
121 | -ffx : agree on "a" | |
|
122 | -fxf C: agree on "a" | |
|
123 | -fxx C: hg said "", expected "a" | |
|
124 | -fx- C: agree on "a" | |
|
125 | -f-x : hg said "", expected "a" | |
|
126 | --fx : agree on "a" | |
|
127 | #endif | |
|
128 | ||
|
129 | Files modified or cleanly merged, with no greatest common ancestors: | |
|
130 | ||
|
131 | $ hg init repo; cd repo | |
|
132 | $ touch a0 b0; hg commit -qAm 0 | |
|
133 | $ hg up -qr null; touch a1 b1; hg commit -qAm 1 | |
|
134 | $ hg merge -qr 0; rm b*; hg commit -qAm 2 | |
|
135 | $ hg log -r . -T '{files}\n' | |
|
136 | b0 b1 | |
|
137 | $ cd ../ | |
|
138 | $ rm -rf repo | |
|
139 | ||
|
140 | A few cases of criss-cross merges involving deletions (listing all | |
|
141 | such merges is probably too much). Both gcas contain $files, so we | |
|
142 | expect the final merge to behave like a merge with a single gca | |
|
143 | containing $files. | |
|
144 | ||
|
145 | $ hg init repo; cd repo | |
|
146 | $ files="c1 u1 c2 u2" | |
|
147 | $ touch $files; hg commit -qAm '0 root' | |
|
148 | $ for f in $files; do echo f > $f; done; hg commit -qAm '1 gca1' | |
|
149 | $ hg up -qr0; hg revert -qr 1 --all; hg commit -qAm '2 gca2' | |
|
150 | $ hg up -qr 1; hg merge -qr 2; rm *1; hg commit -qAm '3 p1' | |
|
151 | $ hg up -qr 2; hg merge -qr 1; rm *2; hg commit -qAm '4 p2' | |
|
152 | $ hg merge -qr 3; echo f > u1; echo f > u2; rm -f c1 c2 | |
|
153 | $ hg commit -qAm '5 merge with two gcas' | |
|
154 | $ hg log -r . -T '{files}\n' # expecting u1 u2 | |
|
155 | ||
|
156 | $ cd ../ | |
|
157 | $ rm -rf repo |
@@ -1,131 +1,21 b'' | |||
|
1 | Testing recorded "modified" files for merge commit | |
|
2 | ================================================== | |
|
3 | ||
|
1 | 4 | This file shows what hg says are "modified" files for a merge commit |
|
2 | 5 | (hg log -T {files}), somewhat exhaustively. |
|
3 | It shows merges that involves files contents changing, and merges that | |
|
4 | involve executable bit changing, but not merges with multiple or zero | |
|
5 | merge ancestors, nor copies/renames, and nor identical file contents | |
|
6 | with different filelog revisions. | |
|
6 | ||
|
7 | This file test multiple corner case. | |
|
8 | ||
|
9 | For merges that involve files contents changing, check test-merge-combination-file-content.t | |
|
10 | ||
|
11 | For merges that involve executable bit changing, check test-merge-combination-exec-bytes.t | |
|
12 | ||
|
13 | ||
|
14 | Case with multiple or zero merge ancestors, copies/renames, and identical file contents | |
|
15 | with different filelog revisions are not currently covered. | |
|
7 | 16 | |
|
8 | 17 | $ . $TESTDIR/testlib/merge-combination-util.sh |
|
9 | 18 | |
|
10 | All the merges of various file contents. | |
|
11 | ||
|
12 | $ range () { | |
|
13 | > max=0 | |
|
14 | > for i in $@; do | |
|
15 | > if [ $i = - ]; then continue; fi | |
|
16 | > if [ $i -gt $max ]; then max=$i; fi | |
|
17 | > done | |
|
18 | > $TESTDIR/seq.py `expr $max + 1` | |
|
19 | > } | |
|
20 | $ isgood () { true; } | |
|
21 | $ createfile () { | |
|
22 | > if [ -f a ] && [ "`cat a`" = $1 ] | |
|
23 | > then touch $file | |
|
24 | > else echo $v > a | |
|
25 | > fi | |
|
26 | > } | |
|
27 | ||
|
28 | $ genmerges | |
|
29 | 1111 : agree on "" | |
|
30 | 1112 : agree on "a" | |
|
31 | 111- : agree on "a" | |
|
32 | 1121 : agree on "a" | |
|
33 | 1122 : agree on "" | |
|
34 | 1123 : agree on "a" | |
|
35 | 112- : agree on "a" | |
|
36 | 11-1 : hg said "", expected "a" | |
|
37 | 11-2 : agree on "a" | |
|
38 | 11-- : agree on "" | |
|
39 | 1211 : agree on "a" | |
|
40 | 1212 : agree on "" | |
|
41 | 1213 : agree on "a" | |
|
42 | 121- : agree on "a" | |
|
43 | 1221 : agree on "a" | |
|
44 | 1222 : agree on "" | |
|
45 | 1223 : agree on "a" | |
|
46 | 122- : agree on "a" | |
|
47 | 1231 C: agree on "a" | |
|
48 | 1232 C: agree on "a" | |
|
49 | 1233 C: agree on "a" | |
|
50 | 1234 C: agree on "a" | |
|
51 | 123- C: agree on "a" | |
|
52 | 12-1 C: agree on "a" | |
|
53 | 12-2 C: hg said "", expected "a" | |
|
54 | 12-3 C: agree on "a" | |
|
55 | 12-- C: agree on "a" | |
|
56 | 1-11 : hg said "", expected "a" | |
|
57 | 1-12 : agree on "a" | |
|
58 | 1-1- : agree on "" | |
|
59 | 1-21 C: agree on "a" | |
|
60 | 1-22 C: hg said "", expected "a" | |
|
61 | 1-23 C: agree on "a" | |
|
62 | 1-2- C: agree on "a" | |
|
63 | 1--1 : agree on "a" | |
|
64 | 1--2 : agree on "a" | |
|
65 | 1--- : agree on "" | |
|
66 | -111 : agree on "" | |
|
67 | -112 : agree on "a" | |
|
68 | -11- : agree on "a" | |
|
69 | -121 C: agree on "a" | |
|
70 | -122 C: agree on "a" | |
|
71 | -123 C: agree on "a" | |
|
72 | -12- C: agree on "a" | |
|
73 | -1-1 : agree on "" | |
|
74 | -1-2 : agree on "a" | |
|
75 | -1-- : agree on "a" | |
|
76 | --11 : agree on "" | |
|
77 | --12 : agree on "a" | |
|
78 | --1- : agree on "a" | |
|
79 | ---1 : agree on "a" | |
|
80 | ---- : agree on "" | |
|
81 | ||
|
82 | All the merges of executable bit. | |
|
83 | ||
|
84 | $ range () { | |
|
85 | > max=a | |
|
86 | > for i in $@; do | |
|
87 | > if [ $i = - ]; then continue; fi | |
|
88 | > if [ $i > $max ]; then max=$i; fi | |
|
89 | > done | |
|
90 | > if [ $max = a ]; then echo f; else echo f x; fi | |
|
91 | > } | |
|
92 | $ isgood () { case $line in *f*x*) true;; *) false;; esac; } | |
|
93 | $ createfile () { | |
|
94 | > if [ -f a ] && (([ -x a ] && [ $v = x ]) || (! [ -x a ] && [ $v != x ])) | |
|
95 | > then touch $file | |
|
96 | > else touch a; if [ $v = x ]; then chmod +x a; else chmod -x a; fi | |
|
97 | > fi | |
|
98 | > } | |
|
99 | ||
|
100 | #if execbit | |
|
101 | $ genmerges | |
|
102 | fffx : agree on "a" | |
|
103 | ffxf : agree on "a" | |
|
104 | ffxx : agree on "" | |
|
105 | ffx- : agree on "a" | |
|
106 | ff-x : hg said "", expected "a" | |
|
107 | fxff : hg said "", expected "a" | |
|
108 | fxfx : hg said "a", expected "" | |
|
109 | fxf- : agree on "a" | |
|
110 | fxxf : agree on "a" | |
|
111 | fxxx : agree on "" | |
|
112 | fxx- : agree on "a" | |
|
113 | fx-f : hg said "", expected "a" | |
|
114 | fx-x : hg said "", expected "a" | |
|
115 | fx-- : hg said "", expected "a" | |
|
116 | f-fx : agree on "a" | |
|
117 | f-xf : agree on "a" | |
|
118 | f-xx : hg said "", expected "a" | |
|
119 | f-x- : agree on "a" | |
|
120 | f--x : agree on "a" | |
|
121 | -ffx : agree on "a" | |
|
122 | -fxf C: agree on "a" | |
|
123 | -fxx C: hg said "", expected "a" | |
|
124 | -fx- C: agree on "a" | |
|
125 | -f-x : hg said "", expected "a" | |
|
126 | --fx : agree on "a" | |
|
127 | #endif | |
|
128 | ||
|
129 | 19 | Files modified or cleanly merged, with no greatest common ancestors: |
|
130 | 20 | |
|
131 | 21 | $ hg init repo; cd repo |
General Comments 0
You need to be logged in to leave comments.
Login now