##// END OF EJS Templates
tests: remove undefined (empty) $opt from test-extdiff.t...
Martin von Zweigbergk -
r46746:60677eca default
parent child Browse files
Show More
@@ -1,545 +1,545 b''
1 $ echo "[extensions]" >> $HGRCPATH
1 $ echo "[extensions]" >> $HGRCPATH
2 $ echo "extdiff=" >> $HGRCPATH
2 $ echo "extdiff=" >> $HGRCPATH
3
3
4 $ hg init a
4 $ hg init a
5 $ cd a
5 $ cd a
6 $ echo a > a
6 $ echo a > a
7 $ echo b > b
7 $ echo b > b
8 $ hg add
8 $ hg add
9 adding a
9 adding a
10 adding b
10 adding b
11
11
12 Should diff cloned directories:
12 Should diff cloned directories:
13
13
14 $ hg extdiff -o -r $opt
14 $ hg extdiff -o -r
15 Only in a: a
15 Only in a: a
16 Only in a: b
16 Only in a: b
17 [1]
17 [1]
18
18
19 $ cat <<EOF >> $HGRCPATH
19 $ cat <<EOF >> $HGRCPATH
20 > [extdiff]
20 > [extdiff]
21 > cmd.falabala = echo
21 > cmd.falabala = echo
22 > opts.falabala = diffing
22 > opts.falabala = diffing
23 > cmd.edspace = echo
23 > cmd.edspace = echo
24 > opts.edspace = "name <user@example.com>"
24 > opts.edspace = "name <user@example.com>"
25 > alabalaf =
25 > alabalaf =
26 > [merge-tools]
26 > [merge-tools]
27 > alabalaf.executable = echo
27 > alabalaf.executable = echo
28 > alabalaf.diffargs = diffing
28 > alabalaf.diffargs = diffing
29 > EOF
29 > EOF
30
30
31 $ hg falabala
31 $ hg falabala
32 diffing a.000000000000 a
32 diffing a.000000000000 a
33 [1]
33 [1]
34
34
35 $ hg help falabala
35 $ hg help falabala
36 hg falabala [OPTION]... [FILE]...
36 hg falabala [OPTION]... [FILE]...
37
37
38 use external program to diff repository (or selected files)
38 use external program to diff repository (or selected files)
39
39
40 Show differences between revisions for the specified files, using the
40 Show differences between revisions for the specified files, using the
41 following program:
41 following program:
42
42
43 'echo'
43 'echo'
44
44
45 When two revision arguments are given, then changes are shown between
45 When two revision arguments are given, then changes are shown between
46 those revisions. If only one revision is specified then that revision is
46 those revisions. If only one revision is specified then that revision is
47 compared to the working directory, and, when no revisions are specified,
47 compared to the working directory, and, when no revisions are specified,
48 the working directory files are compared to its parent.
48 the working directory files are compared to its parent.
49
49
50 options ([+] can be repeated):
50 options ([+] can be repeated):
51
51
52 -o --option OPT [+] pass option to comparison program
52 -o --option OPT [+] pass option to comparison program
53 -r --rev REV [+] revision
53 -r --rev REV [+] revision
54 -c --change REV change made by revision
54 -c --change REV change made by revision
55 --per-file compare each file instead of revision snapshots
55 --per-file compare each file instead of revision snapshots
56 --confirm prompt user before each external program invocation
56 --confirm prompt user before each external program invocation
57 --patch compare patches for two revisions
57 --patch compare patches for two revisions
58 -I --include PATTERN [+] include names matching the given patterns
58 -I --include PATTERN [+] include names matching the given patterns
59 -X --exclude PATTERN [+] exclude names matching the given patterns
59 -X --exclude PATTERN [+] exclude names matching the given patterns
60 -S --subrepos recurse into subrepositories
60 -S --subrepos recurse into subrepositories
61
61
62 (some details hidden, use --verbose to show complete help)
62 (some details hidden, use --verbose to show complete help)
63
63
64 $ hg ci -d '0 0' -mtest1
64 $ hg ci -d '0 0' -mtest1
65
65
66 $ echo b >> a
66 $ echo b >> a
67 $ hg ci -d '1 0' -mtest2
67 $ hg ci -d '1 0' -mtest2
68
68
69 Should diff cloned files directly:
69 Should diff cloned files directly:
70
70
71 $ hg falabala -r 0:1
71 $ hg falabala -r 0:1
72 diffing "*\\extdiff.*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
72 diffing "*\\extdiff.*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
73 diffing */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
73 diffing */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
74 [1]
74 [1]
75
75
76 Specifying an empty revision should abort.
76 Specifying an empty revision should abort.
77
77
78 $ hg extdiff -p diff --patch --rev 'ancestor()' --rev 1
78 $ hg extdiff -p diff --patch --rev 'ancestor()' --rev 1
79 abort: empty revision on one side of range
79 abort: empty revision on one side of range
80 [255]
80 [255]
81
81
82 Test diff during merge:
82 Test diff during merge:
83
83
84 $ hg update -C 0
84 $ hg update -C 0
85 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
85 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
86 $ echo c >> c
86 $ echo c >> c
87 $ hg add c
87 $ hg add c
88 $ hg ci -m "new branch" -d '1 0'
88 $ hg ci -m "new branch" -d '1 0'
89 created new head
89 created new head
90 $ hg merge 1
90 $ hg merge 1
91 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
91 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
92 (branch merge, don't forget to commit)
92 (branch merge, don't forget to commit)
93
93
94 Should diff cloned file against wc file:
94 Should diff cloned file against wc file:
95
95
96 $ hg falabala
96 $ hg falabala
97 diffing "*\\extdiff.*\\a.2a13a4d2da36\\a" "*\\a\\a" (glob) (windows !)
97 diffing "*\\extdiff.*\\a.2a13a4d2da36\\a" "*\\a\\a" (glob) (windows !)
98 diffing */extdiff.*/a.2a13a4d2da36/a */a/a (glob) (no-windows !)
98 diffing */extdiff.*/a.2a13a4d2da36/a */a/a (glob) (no-windows !)
99 [1]
99 [1]
100
100
101
101
102 Test --change option:
102 Test --change option:
103
103
104 $ hg ci -d '2 0' -mtest3
104 $ hg ci -d '2 0' -mtest3
105
105
106 $ hg falabala -c 1
106 $ hg falabala -c 1
107 diffing "*\\extdiff.*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
107 diffing "*\\extdiff.*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
108 diffing */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
108 diffing */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
109 [1]
109 [1]
110
110
111 Check diff are made from the first parent:
111 Check diff are made from the first parent:
112
112
113 $ hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code"
113 $ hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code"
114 diffing "*\\extdiff.*\\a.2a13a4d2da36\\a" "a.46c0e4daeb72\\a" (glob) (windows !)
114 diffing "*\\extdiff.*\\a.2a13a4d2da36\\a" "a.46c0e4daeb72\\a" (glob) (windows !)
115 diffing */extdiff.*/a.2a13a4d2da36/a a.46c0e4daeb72/a (glob) (no-windows !)
115 diffing */extdiff.*/a.2a13a4d2da36/a a.46c0e4daeb72/a (glob) (no-windows !)
116 diff-like tools yield a non-zero exit code
116 diff-like tools yield a non-zero exit code
117
117
118 issue3153: ensure using extdiff with removed subrepos doesn't crash:
118 issue3153: ensure using extdiff with removed subrepos doesn't crash:
119
119
120 $ hg init suba
120 $ hg init suba
121 $ cd suba
121 $ cd suba
122 $ echo suba > suba
122 $ echo suba > suba
123 $ hg add
123 $ hg add
124 adding suba
124 adding suba
125 $ hg ci -m "adding suba file"
125 $ hg ci -m "adding suba file"
126 $ cd ..
126 $ cd ..
127 $ echo suba=suba > .hgsub
127 $ echo suba=suba > .hgsub
128 $ hg add
128 $ hg add
129 adding .hgsub
129 adding .hgsub
130 $ hg ci -Sm "adding subrepo"
130 $ hg ci -Sm "adding subrepo"
131 $ echo > .hgsub
131 $ echo > .hgsub
132 $ hg ci -m "removing subrepo"
132 $ hg ci -m "removing subrepo"
133 $ hg falabala -r 4 -r 5 -S
133 $ hg falabala -r 4 -r 5 -S
134 diffing a.398e36faf9c6 a.5ab95fb166c4
134 diffing a.398e36faf9c6 a.5ab95fb166c4
135 [1]
135 [1]
136
136
137 Test --per-file option:
137 Test --per-file option:
138
138
139 $ hg up -q -C 3
139 $ hg up -q -C 3
140 $ echo a2 > a
140 $ echo a2 > a
141 $ echo b2 > b
141 $ echo b2 > b
142 $ hg ci -d '3 0' -mtestmode1
142 $ hg ci -d '3 0' -mtestmode1
143 created new head
143 created new head
144 $ hg falabala -c 6 --per-file
144 $ hg falabala -c 6 --per-file
145 diffing "*\\extdiff.*\\a.46c0e4daeb72\\a" "a.81906f2b98ac\\a" (glob) (windows !)
145 diffing "*\\extdiff.*\\a.46c0e4daeb72\\a" "a.81906f2b98ac\\a" (glob) (windows !)
146 diffing */extdiff.*/a.46c0e4daeb72/a a.81906f2b98ac/a (glob) (no-windows !)
146 diffing */extdiff.*/a.46c0e4daeb72/a a.81906f2b98ac/a (glob) (no-windows !)
147 diffing "*\\extdiff.*\\a.46c0e4daeb72\\b" "a.81906f2b98ac\\b" (glob) (windows !)
147 diffing "*\\extdiff.*\\a.46c0e4daeb72\\b" "a.81906f2b98ac\\b" (glob) (windows !)
148 diffing */extdiff.*/a.46c0e4daeb72/b a.81906f2b98ac/b (glob) (no-windows !)
148 diffing */extdiff.*/a.46c0e4daeb72/b a.81906f2b98ac/b (glob) (no-windows !)
149 [1]
149 [1]
150
150
151 Test --per-file option for gui tool:
151 Test --per-file option for gui tool:
152
152
153 $ hg --config extdiff.gui.alabalaf=True alabalaf -c 6 --per-file --debug
153 $ hg --config extdiff.gui.alabalaf=True alabalaf -c 6 --per-file --debug
154 diffing */extdiff.*/a.46c0e4daeb72/* a.81906f2b98ac/* (glob)
154 diffing */extdiff.*/a.46c0e4daeb72/* a.81906f2b98ac/* (glob)
155 diffing */extdiff.*/a.46c0e4daeb72/* a.81906f2b98ac/* (glob)
155 diffing */extdiff.*/a.46c0e4daeb72/* a.81906f2b98ac/* (glob)
156 making snapshot of 2 files from rev 46c0e4daeb72
156 making snapshot of 2 files from rev 46c0e4daeb72
157 a
157 a
158 b
158 b
159 making snapshot of 2 files from rev 81906f2b98ac
159 making snapshot of 2 files from rev 81906f2b98ac
160 a
160 a
161 b
161 b
162 running '* diffing * *' in * (backgrounded) (glob)
162 running '* diffing * *' in * (backgrounded) (glob)
163 running '* diffing * *' in * (backgrounded) (glob)
163 running '* diffing * *' in * (backgrounded) (glob)
164 cleaning up temp directory
164 cleaning up temp directory
165 [1]
165 [1]
166
166
167 Test --per-file option for gui tool again:
167 Test --per-file option for gui tool again:
168
168
169 $ hg --config merge-tools.alabalaf.gui=True alabalaf -c 6 --per-file --debug
169 $ hg --config merge-tools.alabalaf.gui=True alabalaf -c 6 --per-file --debug
170 diffing */extdiff.*/a.46c0e4daeb72/* a.81906f2b98ac/* (glob)
170 diffing */extdiff.*/a.46c0e4daeb72/* a.81906f2b98ac/* (glob)
171 diffing */extdiff.*/a.46c0e4daeb72/* a.81906f2b98ac/* (glob)
171 diffing */extdiff.*/a.46c0e4daeb72/* a.81906f2b98ac/* (glob)
172 making snapshot of 2 files from rev 46c0e4daeb72
172 making snapshot of 2 files from rev 46c0e4daeb72
173 a
173 a
174 b
174 b
175 making snapshot of 2 files from rev 81906f2b98ac
175 making snapshot of 2 files from rev 81906f2b98ac
176 a
176 a
177 b
177 b
178 running '* diffing * *' in * (backgrounded) (glob)
178 running '* diffing * *' in * (backgrounded) (glob)
179 running '* diffing * *' in * (backgrounded) (glob)
179 running '* diffing * *' in * (backgrounded) (glob)
180 cleaning up temp directory
180 cleaning up temp directory
181 [1]
181 [1]
182
182
183 Test --per-file and --confirm options:
183 Test --per-file and --confirm options:
184
184
185 $ hg --config ui.interactive=True falabala -c 6 --per-file --confirm <<EOF
185 $ hg --config ui.interactive=True falabala -c 6 --per-file --confirm <<EOF
186 > n
186 > n
187 > y
187 > y
188 > EOF
188 > EOF
189 diff a (1 of 2) [Yns?] n
189 diff a (1 of 2) [Yns?] n
190 diff b (2 of 2) [Yns?] y
190 diff b (2 of 2) [Yns?] y
191 diffing "*\\extdiff.*\\a.46c0e4daeb72\\b" "a.81906f2b98ac\\b" (glob) (windows !)
191 diffing "*\\extdiff.*\\a.46c0e4daeb72\\b" "a.81906f2b98ac\\b" (glob) (windows !)
192 diffing */extdiff.*/a.46c0e4daeb72/b a.81906f2b98ac/b (glob) (no-windows !)
192 diffing */extdiff.*/a.46c0e4daeb72/b a.81906f2b98ac/b (glob) (no-windows !)
193 [1]
193 [1]
194
194
195 Test --per-file and --confirm options with skipping:
195 Test --per-file and --confirm options with skipping:
196
196
197 $ hg --config ui.interactive=True falabala -c 6 --per-file --confirm <<EOF
197 $ hg --config ui.interactive=True falabala -c 6 --per-file --confirm <<EOF
198 > s
198 > s
199 > EOF
199 > EOF
200 diff a (1 of 2) [Yns?] s
200 diff a (1 of 2) [Yns?] s
201 [1]
201 [1]
202
202
203 issue4463: usage of command line configuration without additional quoting
203 issue4463: usage of command line configuration without additional quoting
204
204
205 $ cat <<EOF >> $HGRCPATH
205 $ cat <<EOF >> $HGRCPATH
206 > [extdiff]
206 > [extdiff]
207 > cmd.4463a = echo
207 > cmd.4463a = echo
208 > opts.4463a = a-naked 'single quoted' "double quoted"
208 > opts.4463a = a-naked 'single quoted' "double quoted"
209 > 4463b = echo b-naked 'single quoted' "double quoted"
209 > 4463b = echo b-naked 'single quoted' "double quoted"
210 > echo =
210 > echo =
211 > EOF
211 > EOF
212 $ hg update -q -C 0
212 $ hg update -q -C 0
213 $ echo a >> a
213 $ echo a >> a
214
214
215 $ hg --debug 4463a | grep '^running'
215 $ hg --debug 4463a | grep '^running'
216 running 'echo a-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
216 running 'echo a-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
217 running 'echo a-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
217 running 'echo a-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
218 $ hg --debug 4463b | grep '^running'
218 $ hg --debug 4463b | grep '^running'
219 running 'echo b-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
219 running 'echo b-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
220 running 'echo b-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
220 running 'echo b-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
221 $ hg --debug echo | grep '^running'
221 $ hg --debug echo | grep '^running'
222 running '*echo* "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
222 running '*echo* "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
223 running '*echo */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
223 running '*echo */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
224
224
225 (getting options from other than extdiff section)
225 (getting options from other than extdiff section)
226
226
227 $ cat <<EOF >> $HGRCPATH
227 $ cat <<EOF >> $HGRCPATH
228 > [extdiff]
228 > [extdiff]
229 > # using diff-tools diffargs
229 > # using diff-tools diffargs
230 > 4463b2 = echo
230 > 4463b2 = echo
231 > # using merge-tools diffargs
231 > # using merge-tools diffargs
232 > 4463b3 = echo
232 > 4463b3 = echo
233 > # no diffargs
233 > # no diffargs
234 > 4463b4 = echo
234 > 4463b4 = echo
235 > [diff-tools]
235 > [diff-tools]
236 > 4463b2.diffargs = b2-naked 'single quoted' "double quoted"
236 > 4463b2.diffargs = b2-naked 'single quoted' "double quoted"
237 > [merge-tools]
237 > [merge-tools]
238 > 4463b3.diffargs = b3-naked 'single quoted' "double quoted"
238 > 4463b3.diffargs = b3-naked 'single quoted' "double quoted"
239 > EOF
239 > EOF
240
240
241 $ hg --debug 4463b2 | grep '^running'
241 $ hg --debug 4463b2 | grep '^running'
242 running 'echo b2-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
242 running 'echo b2-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
243 running 'echo b2-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
243 running 'echo b2-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
244 $ hg --debug 4463b3 | grep '^running'
244 $ hg --debug 4463b3 | grep '^running'
245 running 'echo b3-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
245 running 'echo b3-naked \'single quoted\' "double quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
246 running 'echo b3-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
246 running 'echo b3-naked \'single quoted\' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
247 $ hg --debug 4463b4 | grep '^running'
247 $ hg --debug 4463b4 | grep '^running'
248 running 'echo "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
248 running 'echo "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
249 running 'echo */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
249 running 'echo */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
250 $ hg --debug 4463b4 --option b4-naked --option 'being quoted' | grep '^running'
250 $ hg --debug 4463b4 --option b4-naked --option 'being quoted' | grep '^running'
251 running 'echo b4-naked "being quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
251 running 'echo b4-naked "being quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
252 running "echo b4-naked 'being quoted' */a $TESTTMP/a/a" in */extdiff.* (glob) (no-windows !)
252 running "echo b4-naked 'being quoted' */a $TESTTMP/a/a" in */extdiff.* (glob) (no-windows !)
253 $ hg --debug extdiff -p echo --option echo-naked --option 'being quoted' | grep '^running'
253 $ hg --debug extdiff -p echo --option echo-naked --option 'being quoted' | grep '^running'
254 running 'echo echo-naked "being quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
254 running 'echo echo-naked "being quoted" "*\\a" "*\\a"' in */extdiff.* (glob) (windows !)
255 running "echo echo-naked 'being quoted' */a $TESTTMP/a/a" in */extdiff.* (glob) (no-windows !)
255 running "echo echo-naked 'being quoted' */a $TESTTMP/a/a" in */extdiff.* (glob) (no-windows !)
256
256
257 $ touch 'sp ace'
257 $ touch 'sp ace'
258 $ hg add 'sp ace'
258 $ hg add 'sp ace'
259 $ hg ci -m 'sp ace'
259 $ hg ci -m 'sp ace'
260 created new head
260 created new head
261 $ echo > 'sp ace'
261 $ echo > 'sp ace'
262
262
263 Test pre-72a89cf86fcd backward compatibility with half-baked manual quoting
263 Test pre-72a89cf86fcd backward compatibility with half-baked manual quoting
264
264
265 $ cat <<EOF >> $HGRCPATH
265 $ cat <<EOF >> $HGRCPATH
266 > [extdiff]
266 > [extdiff]
267 > odd =
267 > odd =
268 > [merge-tools]
268 > [merge-tools]
269 > odd.diffargs = --foo='\$clabel' '\$clabel' "--bar=\$clabel" "\$clabel"
269 > odd.diffargs = --foo='\$clabel' '\$clabel' "--bar=\$clabel" "\$clabel"
270 > odd.executable = echo
270 > odd.executable = echo
271 > EOF
271 > EOF
272
272
273 $ hg --debug odd | grep '^running'
273 $ hg --debug odd | grep '^running'
274 running '"*\\echo.exe" --foo="sp ace" "sp ace" --bar="sp ace" "sp ace"' in * (glob) (windows !)
274 running '"*\\echo.exe" --foo="sp ace" "sp ace" --bar="sp ace" "sp ace"' in * (glob) (windows !)
275 running "*/echo --foo='sp ace' 'sp ace' --bar='sp ace' 'sp ace'" in * (glob) (no-windows !)
275 running "*/echo --foo='sp ace' 'sp ace' --bar='sp ace' 'sp ace'" in * (glob) (no-windows !)
276
276
277 Empty argument must be quoted
277 Empty argument must be quoted
278
278
279 $ cat <<EOF >> $HGRCPATH
279 $ cat <<EOF >> $HGRCPATH
280 > [extdiff]
280 > [extdiff]
281 > kdiff3 = echo
281 > kdiff3 = echo
282 > [merge-tools]
282 > [merge-tools]
283 > kdiff3.diffargs=--L1 \$plabel1 --L2 \$clabel \$parent \$child
283 > kdiff3.diffargs=--L1 \$plabel1 --L2 \$clabel \$parent \$child
284 > EOF
284 > EOF
285
285
286 $ hg --debug kdiff3 -r0 | grep '^running'
286 $ hg --debug kdiff3 -r0 | grep '^running'
287 running 'echo --L1 "@0" --L2 "" a.8a5febb7f867 a' in * (glob) (windows !)
287 running 'echo --L1 "@0" --L2 "" a.8a5febb7f867 a' in * (glob) (windows !)
288 running "echo --L1 '@0' --L2 '' a.8a5febb7f867 a" in * (glob) (no-windows !)
288 running "echo --L1 '@0' --L2 '' a.8a5febb7f867 a" in * (glob) (no-windows !)
289
289
290
290
291 Test extdiff of multiple files in tmp dir:
291 Test extdiff of multiple files in tmp dir:
292
292
293 $ hg update -C 0 > /dev/null
293 $ hg update -C 0 > /dev/null
294 $ echo changed > a
294 $ echo changed > a
295 $ echo changed > b
295 $ echo changed > b
296 #if execbit
296 #if execbit
297 $ chmod +x b
297 $ chmod +x b
298 #endif
298 #endif
299
299
300 Diff in working directory, before:
300 Diff in working directory, before:
301
301
302 $ hg diff --git
302 $ hg diff --git
303 diff --git a/a b/a
303 diff --git a/a b/a
304 --- a/a
304 --- a/a
305 +++ b/a
305 +++ b/a
306 @@ -1,1 +1,1 @@
306 @@ -1,1 +1,1 @@
307 -a
307 -a
308 +changed
308 +changed
309 diff --git a/b b/b
309 diff --git a/b b/b
310 old mode 100644 (execbit !)
310 old mode 100644 (execbit !)
311 new mode 100755 (execbit !)
311 new mode 100755 (execbit !)
312 --- a/b
312 --- a/b
313 +++ b/b
313 +++ b/b
314 @@ -1,1 +1,1 @@
314 @@ -1,1 +1,1 @@
315 -b
315 -b
316 +changed
316 +changed
317
317
318
318
319 Edit with extdiff -p:
319 Edit with extdiff -p:
320
320
321 Prepare custom diff/edit tool:
321 Prepare custom diff/edit tool:
322
322
323 $ cat > 'diff tool.py' << EOT
323 $ cat > 'diff tool.py' << EOT
324 > #!$PYTHON
324 > #!$PYTHON
325 > import time
325 > import time
326 > time.sleep(1) # avoid unchanged-timestamp problems
326 > time.sleep(1) # avoid unchanged-timestamp problems
327 > open('a/a', 'ab').write(b'edited\n')
327 > open('a/a', 'ab').write(b'edited\n')
328 > open('a/b', 'ab').write(b'edited\n')
328 > open('a/b', 'ab').write(b'edited\n')
329 > EOT
329 > EOT
330
330
331 #if execbit
331 #if execbit
332 $ chmod +x 'diff tool.py'
332 $ chmod +x 'diff tool.py'
333 #endif
333 #endif
334
334
335 will change to /tmp/extdiff.TMP and populate directories a.TMP and a
335 will change to /tmp/extdiff.TMP and populate directories a.TMP and a
336 and start tool
336 and start tool
337
337
338 #if windows
338 #if windows
339 $ cat > 'diff tool.bat' << EOF
339 $ cat > 'diff tool.bat' << EOF
340 > @"$PYTHON" "`pwd`/diff tool.py"
340 > @"$PYTHON" "`pwd`/diff tool.py"
341 > EOF
341 > EOF
342 $ hg extdiff -p "`pwd`/diff tool.bat"
342 $ hg extdiff -p "`pwd`/diff tool.bat"
343 [1]
343 [1]
344 #else
344 #else
345 $ hg extdiff -p "`pwd`/diff tool.py"
345 $ hg extdiff -p "`pwd`/diff tool.py"
346 [1]
346 [1]
347 #endif
347 #endif
348
348
349 Diff in working directory, after:
349 Diff in working directory, after:
350
350
351 $ hg diff --git
351 $ hg diff --git
352 diff --git a/a b/a
352 diff --git a/a b/a
353 --- a/a
353 --- a/a
354 +++ b/a
354 +++ b/a
355 @@ -1,1 +1,2 @@
355 @@ -1,1 +1,2 @@
356 -a
356 -a
357 +changed
357 +changed
358 +edited
358 +edited
359 diff --git a/b b/b
359 diff --git a/b b/b
360 old mode 100644 (execbit !)
360 old mode 100644 (execbit !)
361 new mode 100755 (execbit !)
361 new mode 100755 (execbit !)
362 --- a/b
362 --- a/b
363 +++ b/b
363 +++ b/b
364 @@ -1,1 +1,2 @@
364 @@ -1,1 +1,2 @@
365 -b
365 -b
366 +changed
366 +changed
367 +edited
367 +edited
368
368
369 Test extdiff with --option:
369 Test extdiff with --option:
370
370
371 $ hg extdiff -p echo -o this -c 1
371 $ hg extdiff -p echo -o this -c 1
372 this "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
372 this "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
373 this */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
373 this */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
374 [1]
374 [1]
375
375
376 $ hg falabala -o this -c 1
376 $ hg falabala -o this -c 1
377 diffing this "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
377 diffing this "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
378 diffing this */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
378 diffing this */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
379 [1]
379 [1]
380
380
381 Test extdiff's handling of options with spaces in them:
381 Test extdiff's handling of options with spaces in them:
382
382
383 $ hg edspace -c 1
383 $ hg edspace -c 1
384 "name <user@example.com>" "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
384 "name <user@example.com>" "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
385 name <user@example.com> */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
385 name <user@example.com> */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
386 [1]
386 [1]
387
387
388 $ hg extdiff -p echo -o "name <user@example.com>" -c 1
388 $ hg extdiff -p echo -o "name <user@example.com>" -c 1
389 "name <user@example.com>" "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
389 "name <user@example.com>" "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
390 name <user@example.com> */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
390 name <user@example.com> */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
391 [1]
391 [1]
392
392
393 Test with revsets:
393 Test with revsets:
394
394
395 $ hg extdif -p echo -c "rev(1)"
395 $ hg extdif -p echo -c "rev(1)"
396 "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
396 "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
397 */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
397 */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
398 [1]
398 [1]
399
399
400 $ hg extdif -p echo -r "0::1"
400 $ hg extdif -p echo -r "0::1"
401 "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
401 "*\\a.8a5febb7f867\\a" "a.34eed99112ab\\a" (glob) (windows !)
402 */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
402 */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
403 [1]
403 [1]
404
404
405 Fallback to merge-tools.tool.executable|regkey
405 Fallback to merge-tools.tool.executable|regkey
406 $ mkdir dir
406 $ mkdir dir
407 $ cat > 'dir/tool.sh' << 'EOF'
407 $ cat > 'dir/tool.sh' << 'EOF'
408 > #!/bin/sh
408 > #!/bin/sh
409 > # Mimic a tool that syncs all attrs, including mtime
409 > # Mimic a tool that syncs all attrs, including mtime
410 > cp $1/a $2/a
410 > cp $1/a $2/a
411 > touch -r $1/a $2/a
411 > touch -r $1/a $2/a
412 > chmod +x $2/a
412 > chmod +x $2/a
413 > echo "** custom diff **"
413 > echo "** custom diff **"
414 > EOF
414 > EOF
415 #if execbit
415 #if execbit
416 $ chmod +x dir/tool.sh
416 $ chmod +x dir/tool.sh
417 #endif
417 #endif
418
418
419 Windows can't run *.sh directly, so create a shim executable that can be.
419 Windows can't run *.sh directly, so create a shim executable that can be.
420 Without something executable, the next hg command will try to run `tl` instead
420 Without something executable, the next hg command will try to run `tl` instead
421 of $tool (and fail).
421 of $tool (and fail).
422 #if windows
422 #if windows
423 $ cat > dir/tool.bat <<EOF
423 $ cat > dir/tool.bat <<EOF
424 > @sh -c "`pwd`/dir/tool.sh %1 %2"
424 > @sh -c "`pwd`/dir/tool.sh %1 %2"
425 > EOF
425 > EOF
426 $ tool=`pwd`/dir/tool.bat
426 $ tool=`pwd`/dir/tool.bat
427 #else
427 #else
428 $ tool=`pwd`/dir/tool.sh
428 $ tool=`pwd`/dir/tool.sh
429 #endif
429 #endif
430
430
431 $ cat a
431 $ cat a
432 changed
432 changed
433 edited
433 edited
434 $ hg --debug tl --config extdiff.tl= --config merge-tools.tl.executable=$tool
434 $ hg --debug tl --config extdiff.tl= --config merge-tools.tl.executable=$tool
435 making snapshot of 2 files from rev * (glob)
435 making snapshot of 2 files from rev * (glob)
436 a
436 a
437 b
437 b
438 making snapshot of 2 files from working directory
438 making snapshot of 2 files from working directory
439 a
439 a
440 b
440 b
441 running '$TESTTMP/a/dir/tool.bat a.* a' in */extdiff.* (glob) (windows !)
441 running '$TESTTMP/a/dir/tool.bat a.* a' in */extdiff.* (glob) (windows !)
442 running '$TESTTMP/a/dir/tool.sh a.* a' in */extdiff.* (glob) (no-windows !)
442 running '$TESTTMP/a/dir/tool.sh a.* a' in */extdiff.* (glob) (no-windows !)
443 ** custom diff **
443 ** custom diff **
444 file changed while diffing. Overwriting: $TESTTMP/a/a (src: */extdiff.*/a/a) (glob)
444 file changed while diffing. Overwriting: $TESTTMP/a/a (src: */extdiff.*/a/a) (glob)
445 cleaning up temp directory
445 cleaning up temp directory
446 [1]
446 [1]
447 $ cat a
447 $ cat a
448 a
448 a
449
449
450 #if execbit
450 #if execbit
451 $ [ -x a ]
451 $ [ -x a ]
452
452
453 $ cat > 'dir/tool.sh' << 'EOF'
453 $ cat > 'dir/tool.sh' << 'EOF'
454 > #!/bin/sh
454 > #!/bin/sh
455 > chmod -x $2/a
455 > chmod -x $2/a
456 > echo "** custom diff **"
456 > echo "** custom diff **"
457 > EOF
457 > EOF
458
458
459 $ hg --debug tl --config extdiff.tl= --config merge-tools.tl.executable=$tool
459 $ hg --debug tl --config extdiff.tl= --config merge-tools.tl.executable=$tool
460 making snapshot of 2 files from rev * (glob)
460 making snapshot of 2 files from rev * (glob)
461 a
461 a
462 b
462 b
463 making snapshot of 2 files from working directory
463 making snapshot of 2 files from working directory
464 a
464 a
465 b
465 b
466 running '$TESTTMP/a/dir/tool.sh a.* a' in */extdiff.* (glob)
466 running '$TESTTMP/a/dir/tool.sh a.* a' in */extdiff.* (glob)
467 ** custom diff **
467 ** custom diff **
468 file changed while diffing. Overwriting: $TESTTMP/a/a (src: */extdiff.*/a/a) (glob)
468 file changed while diffing. Overwriting: $TESTTMP/a/a (src: */extdiff.*/a/a) (glob)
469 cleaning up temp directory
469 cleaning up temp directory
470 [1]
470 [1]
471
471
472 $ [ -x a ]
472 $ [ -x a ]
473 [1]
473 [1]
474 #endif
474 #endif
475
475
476 $ cd ..
476 $ cd ..
477
477
478 #if symlink
478 #if symlink
479
479
480 Test symlinks handling (issue1909)
480 Test symlinks handling (issue1909)
481
481
482 $ hg init testsymlinks
482 $ hg init testsymlinks
483 $ cd testsymlinks
483 $ cd testsymlinks
484 $ echo a > a
484 $ echo a > a
485 $ hg ci -Am adda
485 $ hg ci -Am adda
486 adding a
486 adding a
487 $ echo a >> a
487 $ echo a >> a
488 $ ln -s missing linka
488 $ ln -s missing linka
489 $ hg add linka
489 $ hg add linka
490 $ hg falabala -r 0 --traceback
490 $ hg falabala -r 0 --traceback
491 diffing testsymlinks.07f494440405 testsymlinks
491 diffing testsymlinks.07f494440405 testsymlinks
492 [1]
492 [1]
493 $ cd ..
493 $ cd ..
494
494
495 #endif
495 #endif
496
496
497 Test handling of non-ASCII paths in generated docstrings (issue5301)
497 Test handling of non-ASCII paths in generated docstrings (issue5301)
498
498
499 >>> with open("u", "wb") as f:
499 >>> with open("u", "wb") as f:
500 ... n = f.write(b"\xa5\xa5")
500 ... n = f.write(b"\xa5\xa5")
501 $ U=`cat u`
501 $ U=`cat u`
502
502
503 $ HGPLAIN=1 hg --config hgext.extdiff= --config extdiff.cmd.td=hi help -k xyzzy
503 $ HGPLAIN=1 hg --config hgext.extdiff= --config extdiff.cmd.td=hi help -k xyzzy
504 abort: no matches
504 abort: no matches
505 (try 'hg help' for a list of topics)
505 (try 'hg help' for a list of topics)
506 [255]
506 [255]
507
507
508 $ HGPLAIN=1 hg --config hgext.extdiff= --config extdiff.cmd.td=hi help td > /dev/null
508 $ HGPLAIN=1 hg --config hgext.extdiff= --config extdiff.cmd.td=hi help td > /dev/null
509
509
510 $ LC_MESSAGES=ja_JP.UTF-8 hg --config hgext.extdiff= --config extdiff.cmd.td=$U help -k xyzzy
510 $ LC_MESSAGES=ja_JP.UTF-8 hg --config hgext.extdiff= --config extdiff.cmd.td=$U help -k xyzzy
511 abort: no matches
511 abort: no matches
512 (try 'hg help' for a list of topics)
512 (try 'hg help' for a list of topics)
513 [255]
513 [255]
514
514
515 $ LC_MESSAGES=ja_JP.UTF-8 hg --config hgext.extdiff= --config extdiff.cmd.td=$U help td \
515 $ LC_MESSAGES=ja_JP.UTF-8 hg --config hgext.extdiff= --config extdiff.cmd.td=$U help td \
516 > | grep "^ '"
516 > | grep "^ '"
517 '\xa5\xa5'
517 '\xa5\xa5'
518
518
519 $ cd $TESTTMP
519 $ cd $TESTTMP
520
520
521 Test that diffing a single file works, even if that file is new
521 Test that diffing a single file works, even if that file is new
522
522
523 $ hg init testsinglefile
523 $ hg init testsinglefile
524 $ cd testsinglefile
524 $ cd testsinglefile
525 $ echo a > a
525 $ echo a > a
526 $ hg add a
526 $ hg add a
527 $ hg falabala
527 $ hg falabala
528 diffing nul "*\\a" (glob) (windows !)
528 diffing nul "*\\a" (glob) (windows !)
529 diffing /dev/null */a (glob) (no-windows !)
529 diffing /dev/null */a (glob) (no-windows !)
530 [1]
530 [1]
531 $ hg ci -qm a
531 $ hg ci -qm a
532 $ hg falabala -c .
532 $ hg falabala -c .
533 diffing nul "*\\a" (glob) (windows !)
533 diffing nul "*\\a" (glob) (windows !)
534 diffing /dev/null */a (glob) (no-windows !)
534 diffing /dev/null */a (glob) (no-windows !)
535 [1]
535 [1]
536 $ echo a >> a
536 $ echo a >> a
537 $ hg falabala
537 $ hg falabala
538 diffing "*\\a" "*\\a" (glob) (windows !)
538 diffing "*\\a" "*\\a" (glob) (windows !)
539 diffing */a */a (glob) (no-windows !)
539 diffing */a */a (glob) (no-windows !)
540 [1]
540 [1]
541 $ hg ci -qm 2a
541 $ hg ci -qm 2a
542 $ hg falabala -c .
542 $ hg falabala -c .
543 diffing "*\\a" "*\\a" (glob) (windows !)
543 diffing "*\\a" "*\\a" (glob) (windows !)
544 diffing */a */a (glob) (no-windows !)
544 diffing */a */a (glob) (no-windows !)
545 [1]
545 [1]
General Comments 0
You need to be logged in to leave comments. Login now