Mercurial > hg
annotate tests/test-merge-tools @ 12156:4c94b6d0fb1c
tests: remove unneeded -d flags
Many tests fixed the commit date of their changesets at '1000000 0' or
similar. However testing with "Mon Jan 12 13:46:40 1970 +0000" is not
better than testing with "Thu Jan 01 00:00:00 1970 +0000", which is
the default run-tests.py installs.
Removing the unnecessary flag removes some clutter and will hopefully
make it clearer what the tests are really trying to test. Some tests
did not even change their output when the dates were changed, in which
case the -d flag was truly irrelevant.
Dates used in sequence (such as '0 0', '1 0', etc...) were left alone
since they may make the test easier to understand.
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Thu, 02 Sep 2010 23:22:51 +0200 |
parents | c52057614c72 |
children |
rev | line source |
---|---|
7731 | 1 #!/bin/sh |
2 | |
3 # test merge-tools configuration - mostly exercising filemerge.py | |
4 | |
5 unset HGMERGE # make sure HGMERGE doesn't interfere with the test | |
6 | |
7 hg init | |
8 | |
9 echo "# revision 0" | |
10 echo "revision 0" > f | |
11 echo "space" >> f | |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
10775
diff
changeset
|
12 hg commit -Am "revision 0" |
7731 | 13 |
14 echo "# revision 1" | |
15 echo "revision 1" > f | |
16 echo "space" >> f | |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
10775
diff
changeset
|
17 hg commit -Am "revision 1" |
7731 | 18 |
19 hg update 0 > /dev/null | |
20 echo "# revision 2" | |
21 echo "revision 2" > f | |
22 echo "space" >> f | |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
10775
diff
changeset
|
23 hg commit -Am "revision 2" |
7731 | 24 |
25 hg update 0 > /dev/null | |
26 echo "# revision 3 - simple to merge" | |
27 echo "revision 3" >> f | |
12156
4c94b6d0fb1c
tests: remove unneeded -d flags
Martin Geisler <mg@lazybytes.net>
parents:
10775
diff
changeset
|
28 hg commit -Am "revision 3" |
7731 | 29 |
30 | |
31 echo "[merge-tools]" > .hg/hgrc | |
32 echo | |
33 | |
34 beforemerge() { | |
35 cat .hg/hgrc | |
36 echo "# hg update -C 1" | |
37 hg update -C 1 > /dev/null | |
38 } | |
39 | |
40 aftermerge() { | |
41 echo "# cat f" | |
42 cat f | |
43 echo "# hg stat" | |
44 hg stat | |
45 rm -f f.orig | |
46 echo | |
47 } | |
48 | |
49 domerge() { | |
50 beforemerge | |
51 echo "# hg merge $*" | |
52 hg merge $* | |
53 aftermerge | |
54 } | |
55 | |
56 echo | |
57 echo Tool selection | |
58 echo | |
59 | |
60 echo "# default is internal merge:" | |
7785
660c8dd44060
test-merge-tool: Make sure no hgmerge can be found in $PATH
Mads Kiilerich <mads@kiilerich.com>
parents:
7769
diff
changeset
|
61 beforemerge |
660c8dd44060
test-merge-tool: Make sure no hgmerge can be found in $PATH
Mads Kiilerich <mads@kiilerich.com>
parents:
7769
diff
changeset
|
62 echo "# hg merge -r 2" |
8674
0941ee76489e
run-tests: redefine --with-hg so it takes the 'hg' script to run.
Greg Ward <greg-hg@gerg.ca>
parents:
8539
diff
changeset
|
63 # override $PATH to ensure hgmerge not visible; use $PYTHON in case we're |
0941ee76489e
run-tests: redefine --with-hg so it takes the 'hg' script to run.
Greg Ward <greg-hg@gerg.ca>
parents:
8539
diff
changeset
|
64 # running from a devel copy, not a temp installation |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
65 PATH="$BINDIR" $PYTHON "$BINDIR"/hg merge -r 2 |
7785
660c8dd44060
test-merge-tool: Make sure no hgmerge can be found in $PATH
Mads Kiilerich <mads@kiilerich.com>
parents:
7769
diff
changeset
|
66 aftermerge |
7731 | 67 |
68 echo "# simplest hgrc using false for merge:" | |
69 echo "false.whatever=" >> .hg/hgrc | |
70 domerge -r 2 | |
71 | |
72 echo "# true with higher .priority gets precedence:" | |
73 echo "true.priority=1" >> .hg/hgrc | |
74 domerge -r 2 | |
75 | |
76 echo "# unless lowered on command line:" | |
77 domerge -r 2 --config merge-tools.true.priority=-7 | |
78 | |
79 echo "# or false set higher on command line:" | |
80 domerge -r 2 --config merge-tools.false.priority=117 | |
81 | |
82 echo "# or true.executable not found in PATH:" | |
83 domerge -r 2 --config merge-tools.true.executable=nonexistingmergetool | |
84 | |
85 echo "# or true.executable with bogus path:" | |
10282
08a0f04b56bd
many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents:
8901
diff
changeset
|
86 domerge -r 2 --config merge-tools.true.executable=/nonexisting/mergetool |
7731 | 87 |
88 echo "# but true.executable set to cat found in PATH works:" | |
89 echo "true.executable=cat" >> .hg/hgrc | |
90 domerge -r 2 | |
91 | |
92 echo "# and true.executable set to cat with path works:" | |
8539
9a4fe59b1eca
test-merge-tools: windows fixes
Patrick Mezard <pmezard@gmail.com>
parents:
7846
diff
changeset
|
93 domerge -r 2 --config merge-tools.true.executable=cat |
7731 | 94 |
95 echo | |
96 echo Tool selection and merge-patterns | |
97 echo | |
98 | |
7769
8c06d4bf2c23
test-merge-tools: Don't use tac
Mads Kiilerich <mads@kiilerich.com>
parents:
7731
diff
changeset
|
99 echo "# merge-patterns specifies new tool false:" |
8c06d4bf2c23
test-merge-tools: Don't use tac
Mads Kiilerich <mads@kiilerich.com>
parents:
7731
diff
changeset
|
100 domerge -r 2 --config merge-patterns.f=false |
7731 | 101 |
102 echo "# merge-patterns specifies executable not found in PATH and gets warning:" | |
103 domerge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=nonexistingmergetool | |
104 | |
105 echo "# merge-patterns specifies executable with bogus path and gets warning:" | |
10282
08a0f04b56bd
many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents:
8901
diff
changeset
|
106 domerge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexisting/mergetool |
7731 | 107 |
7846
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
108 echo |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
109 echo ui.merge overrules priority |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
110 echo |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
111 |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
112 echo "# ui.merge specifies false:" |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
113 domerge -r 2 --config ui.merge=false |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
114 |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
115 echo "# ui.merge specifies internal:fail:" |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
116 domerge -r 2 --config ui.merge=internal:fail |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
117 |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
118 echo "# ui.merge specifies internal:local:" |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
119 domerge -r 2 --config ui.merge=internal:local |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
120 |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
121 echo "# ui.merge specifies internal:other:" |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
122 domerge -r 2 --config ui.merge=internal:other |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
123 |
8901
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
124 echo "# ui.merge specifies internal:prompt:" |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
125 domerge -r 2 --config ui.merge=internal:prompt |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
126 |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
127 echo "# ui.merge specifies internal:dump:" |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
128 domerge -r 2 --config ui.merge=internal:dump |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
129 echo f.base: |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
130 cat f.base |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
131 echo f.local: |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
132 cat f.local |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
133 echo f.other: |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
134 cat f.other |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
135 rm f.base f.local f.other |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
136 echo |
94319ae527cf
test merge-tools internal:dump and internal:prompt
Mads Kiilerich <mads@kiilerich.com>
parents:
8674
diff
changeset
|
137 |
7846
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
138 echo "# ui.merge specifies internal:other but is overruled by pattern for false:" |
1cb6836946be
test-merge-tools: test ui.merge functionality and selection of internal tools
Mads Kiilerich <mads@kiilerich.com>
parents:
7785
diff
changeset
|
139 domerge -r 2 --config ui.merge=internal:other --config merge-patterns.f=false |
7731 | 140 |
141 echo | |
142 echo Premerge | |
143 echo | |
144 | |
145 echo "# Default is silent simplemerge:" | |
146 domerge -r 3 | |
147 | |
148 echo "# .premerge=True is same:" | |
149 domerge -r 3 --config merge-tools.true.premerge=True | |
150 | |
151 echo "# .premerge=False executes merge-tool:" | |
152 domerge -r 3 --config merge-tools.true.premerge=False | |
153 | |
154 | |
155 echo | |
156 echo Tool execution | |
157 echo | |
158 | |
159 echo '# set tools.args explicit to include $base $local $other $output:' # default '$local $base $other' | |
160 beforemerge | |
161 hg merge -r 2 --config merge-tools.true.executable=head --config merge-tools.true.args='$base $local $other $output' \ | |
162 | sed 's,==> .* <==,==> ... <==,g' | |
163 aftermerge | |
164 | |
165 echo '# Merge with "echo mergeresult > $local":' | |
166 beforemerge | |
167 hg merge -r 2 --config merge-tools.true.executable=echo --config merge-tools.true.args='mergeresult > $local' | |
168 aftermerge | |
169 | |
170 echo '# - and $local is the file f:' | |
171 beforemerge | |
172 hg merge -r 2 --config merge-tools.true.executable=echo --config merge-tools.true.args='mergeresult > f' | |
173 aftermerge | |
174 | |
175 echo '# Merge with "echo mergeresult > $output" - the variable is a bit magic:' | |
176 beforemerge | |
177 hg merge -r 2 --config merge-tools.true.executable=echo --config merge-tools.true.args='mergeresult > $output' | |
178 aftermerge | |
179 | |
10775
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
180 echo '# Merge using tool with a path that must be quoted:' |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
181 beforemerge |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
182 cat <<EOF > 'my merge tool' |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
183 #!/bin/sh |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
184 cat "\$1" "\$2" "\$3" > "\$4" |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
185 EOF |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
186 chmod +x 'my merge tool' |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
187 hg merge -r 2 --config merge-tools.true.executable='./my merge tool' --config merge-tools.true.args='$base $local $other $output' |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
188 rm -f 'my merge tool' |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
189 aftermerge |
c52057614c72
Tests with spaces in paths
Mads Kiilerich <mads@kiilerich.com>
parents:
10282
diff
changeset
|
190 |
7731 | 191 |
192 echo | |
193 echo Merge post-processing | |
194 echo | |
195 | |
196 echo "# cat is a bad merge-tool and doesn't change:" | |
8539
9a4fe59b1eca
test-merge-tools: windows fixes
Patrick Mezard <pmezard@gmail.com>
parents:
7846
diff
changeset
|
197 domerge -y -r 2 --config merge-tools.true.checkchanged=1 |