Mercurial > hg
annotate tests/test-merge-tools @ 10301:56b50194617f
templates: rename `Last change' column in hgwebdir repository list.
This patch changes column headers in the templates that previously
said `Last change' to `Last modified'. Neither code nor functionality
are changed other than that.
For some time now, I have been annoyed by the fact the `Last change'
column didn't list the age of the youngest changeset in the
repository, or at least tip. It just occurred to me that this is
because the wording is slightly misleading; what the column in fact
lists is when the repository was last *modified*, that is, when
changesets was last added or removed from it.
The word `change' can be understood as referring to the changeset
itself. Using `changed' would be ever so slightly less
amigous. However, the standard nomenclature in this case is
`modification date' and `Last modified', which is incidentally entirely
unambigous. Hence, `Last modified' is the wording used.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Sun, 24 Jan 2010 20:51:53 +0100 |
parents | 08a0f04b56bd |
children | c52057614c72 |
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 | |
12 hg commit -Am "revision 0" -d "1000000 0" | |
13 | |
14 echo "# revision 1" | |
15 echo "revision 1" > f | |
16 echo "space" >> f | |
17 hg commit -Am "revision 1" -d "1000000 0" | |
18 | |
19 hg update 0 > /dev/null | |
20 echo "# revision 2" | |
21 echo "revision 2" > f | |
22 echo "space" >> f | |
23 hg commit -Am "revision 2" -d "1000000 0" | |
24 | |
25 hg update 0 > /dev/null | |
26 echo "# revision 3 - simple to merge" | |
27 echo "revision 3" >> f | |
28 hg commit -Am "revision 3" -d "1000000 0" | |
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 |
0941ee76489e
run-tests: redefine --with-hg so it takes the 'hg' script to run.
Greg Ward <greg-hg@gerg.ca>
parents:
8539
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 | |
180 | |
181 echo | |
182 echo Merge post-processing | |
183 echo | |
184 | |
185 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
|
186 domerge -y -r 2 --config merge-tools.true.checkchanged=1 |