comparison tests/test-merge-tools.t @ 16961:cdbb53a640c1

test-merge-tools: inline pointless domerge function This also uncovers the exit codes of the 'hg merge' calls
author Adrian Buehlmann <adrian@cadifra.com>
date Fri, 15 Jun 2012 15:10:19 +0200
parents 2607de602105
children 30cfa286947c
comparison
equal deleted inserted replaced
16960:be64115b4955 16961:cdbb53a640c1
44 > cat f 44 > cat f
45 > echo "# hg stat" 45 > echo "# hg stat"
46 > hg stat 46 > hg stat
47 > rm -f f.orig 47 > rm -f f.orig
48 > } 48 > }
49 $ domerge() {
50 > beforemerge
51 > echo "# hg merge $*"
52 > hg merge $*
53 > aftermerge
54 > }
55 49
56 Tool selection 50 Tool selection
57 51
58 default is internal merge: 52 default is internal merge:
59 53
85 ? f.orig 79 ? f.orig
86 80
87 simplest hgrc using false for merge: 81 simplest hgrc using false for merge:
88 82
89 $ echo "false.whatever=" >> .hg/hgrc 83 $ echo "false.whatever=" >> .hg/hgrc
90 $ domerge -r 2 84 $ beforemerge
91 [merge-tools] 85 [merge-tools]
92 false.whatever= 86 false.whatever=
93 # hg update -C 1 87 # hg update -C 1
94 # hg merge -r 2 88 $ hg merge -r 2
95 merging f 89 merging f
96 merging f failed! 90 merging f failed!
97 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 91 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
98 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 92 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
93 [1]
94 $ aftermerge
99 # cat f 95 # cat f
100 revision 1 96 revision 1
101 space 97 space
102 # hg stat 98 # hg stat
103 M f 99 M f
130 $ rmdir false 126 $ rmdir false
131 127
132 true with higher .priority gets precedence: 128 true with higher .priority gets precedence:
133 129
134 $ echo "true.priority=1" >> .hg/hgrc 130 $ echo "true.priority=1" >> .hg/hgrc
135 $ domerge -r 2 131 $ beforemerge
136 [merge-tools] 132 [merge-tools]
137 false.whatever= 133 false.whatever=
138 true.priority=1 134 true.priority=1
139 # hg update -C 1 135 # hg update -C 1
140 # hg merge -r 2 136 $ hg merge -r 2
141 merging f 137 merging f
142 0 files updated, 1 files merged, 0 files removed, 0 files unresolved 138 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
143 (branch merge, don't forget to commit) 139 (branch merge, don't forget to commit)
140 $ aftermerge
144 # cat f 141 # cat f
145 revision 1 142 revision 1
146 space 143 space
147 # hg stat 144 # hg stat
148 M f 145 M f
149 146
150 unless lowered on command line: 147 unless lowered on command line:
151 148
152 $ domerge -r 2 --config merge-tools.true.priority=-7 149 $ beforemerge
153 [merge-tools] 150 [merge-tools]
154 false.whatever= 151 false.whatever=
155 true.priority=1 152 true.priority=1
156 # hg update -C 1 153 # hg update -C 1
157 # hg merge -r 2 --config merge-tools.true.priority=-7 154 $ hg merge -r 2 --config merge-tools.true.priority=-7
158 merging f 155 merging f
159 merging f failed! 156 merging f failed!
160 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 157 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
161 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 158 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
159 [1]
160 $ aftermerge
162 # cat f 161 # cat f
163 revision 1 162 revision 1
164 space 163 space
165 # hg stat 164 # hg stat
166 M f 165 M f
167 ? f.orig 166 ? f.orig
168 167
169 or false set higher on command line: 168 or false set higher on command line:
170 169
171 $ domerge -r 2 --config merge-tools.false.priority=117 170 $ beforemerge
172 [merge-tools] 171 [merge-tools]
173 false.whatever= 172 false.whatever=
174 true.priority=1 173 true.priority=1
175 # hg update -C 1 174 # hg update -C 1
176 # hg merge -r 2 --config merge-tools.false.priority=117 175 $ hg merge -r 2 --config merge-tools.false.priority=117
177 merging f 176 merging f
178 merging f failed! 177 merging f failed!
179 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 178 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
180 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 179 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
180 [1]
181 $ aftermerge
181 # cat f 182 # cat f
182 revision 1 183 revision 1
183 space 184 space
184 # hg stat 185 # hg stat
185 M f 186 M f
186 ? f.orig 187 ? f.orig
187 188
188 or true.executable not found in PATH: 189 or true.executable not found in PATH:
189 190
190 $ domerge -r 2 --config merge-tools.true.executable=nonexistingmergetool 191 $ beforemerge
191 [merge-tools] 192 [merge-tools]
192 false.whatever= 193 false.whatever=
193 true.priority=1 194 true.priority=1
194 # hg update -C 1 195 # hg update -C 1
195 # hg merge -r 2 --config merge-tools.true.executable=nonexistingmergetool 196 $ hg merge -r 2 --config merge-tools.true.executable=nonexistingmergetool
196 merging f 197 merging f
197 merging f failed! 198 merging f failed!
198 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 199 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
199 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 200 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
201 [1]
202 $ aftermerge
200 # cat f 203 # cat f
201 revision 1 204 revision 1
202 space 205 space
203 # hg stat 206 # hg stat
204 M f 207 M f
205 ? f.orig 208 ? f.orig
206 209
207 or true.executable with bogus path: 210 or true.executable with bogus path:
208 211
209 $ domerge -r 2 --config merge-tools.true.executable=/nonexisting/mergetool 212 $ beforemerge
210 [merge-tools] 213 [merge-tools]
211 false.whatever= 214 false.whatever=
212 true.priority=1 215 true.priority=1
213 # hg update -C 1 216 # hg update -C 1
214 # hg merge -r 2 --config merge-tools.true.executable=/nonexisting/mergetool 217 $ hg merge -r 2 --config merge-tools.true.executable=/nonexisting/mergetool
215 merging f 218 merging f
216 merging f failed! 219 merging f failed!
217 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 220 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
218 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 221 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
222 [1]
223 $ aftermerge
219 # cat f 224 # cat f
220 revision 1 225 revision 1
221 space 226 space
222 # hg stat 227 # hg stat
223 M f 228 M f
224 ? f.orig 229 ? f.orig
225 230
226 but true.executable set to cat found in PATH works: 231 but true.executable set to cat found in PATH works:
227 232
228 $ echo "true.executable=cat" >> .hg/hgrc 233 $ echo "true.executable=cat" >> .hg/hgrc
229 $ domerge -r 2 234 $ beforemerge
230 [merge-tools] 235 [merge-tools]
231 false.whatever= 236 false.whatever=
232 true.priority=1 237 true.priority=1
233 true.executable=cat 238 true.executable=cat
234 # hg update -C 1 239 # hg update -C 1
235 # hg merge -r 2 240 $ hg merge -r 2
236 merging f 241 merging f
237 revision 1 242 revision 1
238 space 243 space
239 revision 0 244 revision 0
240 space 245 space
241 revision 2 246 revision 2
242 space 247 space
243 0 files updated, 1 files merged, 0 files removed, 0 files unresolved 248 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
244 (branch merge, don't forget to commit) 249 (branch merge, don't forget to commit)
250 $ aftermerge
245 # cat f 251 # cat f
246 revision 1 252 revision 1
247 space 253 space
248 # hg stat 254 # hg stat
249 M f 255 M f
250 256
251 and true.executable set to cat with path works: 257 and true.executable set to cat with path works:
252 258
253 $ domerge -r 2 --config merge-tools.true.executable=cat 259 $ beforemerge
254 [merge-tools] 260 [merge-tools]
255 false.whatever= 261 false.whatever=
256 true.priority=1 262 true.priority=1
257 true.executable=cat 263 true.executable=cat
258 # hg update -C 1 264 # hg update -C 1
259 # hg merge -r 2 --config merge-tools.true.executable=cat 265 $ hg merge -r 2 --config merge-tools.true.executable=cat
260 merging f 266 merging f
261 revision 1 267 revision 1
262 space 268 space
263 revision 0 269 revision 0
264 space 270 space
265 revision 2 271 revision 2
266 space 272 space
267 0 files updated, 1 files merged, 0 files removed, 0 files unresolved 273 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
268 (branch merge, don't forget to commit) 274 (branch merge, don't forget to commit)
275 $ aftermerge
269 # cat f 276 # cat f
270 revision 1 277 revision 1
271 space 278 space
272 # hg stat 279 # hg stat
273 M f 280 M f
277 $ cat > $HGTMP/merge.sh <<EOF 284 $ cat > $HGTMP/merge.sh <<EOF
278 > #!/bin/sh 285 > #!/bin/sh
279 > echo 'custom merge tool' 286 > echo 'custom merge tool'
280 > EOF 287 > EOF
281 $ chmod +x $HGTMP/merge.sh 288 $ chmod +x $HGTMP/merge.sh
282 $ domerge -r 2 --config merge-tools.true.executable='$HGTMP/merge.sh' 289 $ beforemerge
283 [merge-tools] 290 [merge-tools]
284 false.whatever= 291 false.whatever=
285 true.priority=1 292 true.priority=1
286 true.executable=cat 293 true.executable=cat
287 # hg update -C 1 294 # hg update -C 1
288 # hg merge -r 2 --config merge-tools.true.executable=$HGTMP/merge.sh 295 $ hg merge -r 2 --config merge-tools.true.executable=$HGTMP/merge.sh
289 merging f 296 merging f
290 custom merge tool 297 custom merge tool
291 0 files updated, 1 files merged, 0 files removed, 0 files unresolved 298 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
292 (branch merge, don't forget to commit) 299 (branch merge, don't forget to commit)
300 $ aftermerge
293 # cat f 301 # cat f
294 revision 1 302 revision 1
295 space 303 space
296 # hg stat 304 # hg stat
297 M f 305 M f
298 306
299 Tool selection and merge-patterns 307 Tool selection and merge-patterns
300 308
301 merge-patterns specifies new tool false: 309 merge-patterns specifies new tool false:
302 310
303 $ domerge -r 2 --config merge-patterns.f=false 311 $ beforemerge
304 [merge-tools] 312 [merge-tools]
305 false.whatever= 313 false.whatever=
306 true.priority=1 314 true.priority=1
307 true.executable=cat 315 true.executable=cat
308 # hg update -C 1 316 # hg update -C 1
309 # hg merge -r 2 --config merge-patterns.f=false 317 $ hg merge -r 2 --config merge-patterns.f=false
310 merging f 318 merging f
311 merging f failed! 319 merging f failed!
312 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 320 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
313 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 321 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
322 [1]
323 $ aftermerge
314 # cat f 324 # cat f
315 revision 1 325 revision 1
316 space 326 space
317 # hg stat 327 # hg stat
318 M f 328 M f
319 ? f.orig 329 ? f.orig
320 330
321 merge-patterns specifies executable not found in PATH and gets warning: 331 merge-patterns specifies executable not found in PATH and gets warning:
322 332
323 $ domerge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=nonexistingmergetool 333 $ beforemerge
324 [merge-tools] 334 [merge-tools]
325 false.whatever= 335 false.whatever=
326 true.priority=1 336 true.priority=1
327 true.executable=cat 337 true.executable=cat
328 # hg update -C 1 338 # hg update -C 1
329 # hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=nonexistingmergetool 339 $ hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=nonexistingmergetool
330 couldn't find merge tool true specified for f 340 couldn't find merge tool true specified for f
331 merging f 341 merging f
332 merging f failed! 342 merging f failed!
333 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 343 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
334 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 344 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
345 [1]
346 $ aftermerge
335 # cat f 347 # cat f
336 revision 1 348 revision 1
337 space 349 space
338 # hg stat 350 # hg stat
339 M f 351 M f
340 ? f.orig 352 ? f.orig
341 353
342 merge-patterns specifies executable with bogus path and gets warning: 354 merge-patterns specifies executable with bogus path and gets warning:
343 355
344 $ domerge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexisting/mergetool 356 $ beforemerge
345 [merge-tools] 357 [merge-tools]
346 false.whatever= 358 false.whatever=
347 true.priority=1 359 true.priority=1
348 true.executable=cat 360 true.executable=cat
349 # hg update -C 1 361 # hg update -C 1
350 # hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexisting/mergetool 362 $ hg merge -r 2 --config merge-patterns.f=true --config merge-tools.true.executable=/nonexisting/mergetool
351 couldn't find merge tool true specified for f 363 couldn't find merge tool true specified for f
352 merging f 364 merging f
353 merging f failed! 365 merging f failed!
354 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 366 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
355 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 367 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
368 [1]
369 $ aftermerge
356 # cat f 370 # cat f
357 revision 1 371 revision 1
358 space 372 space
359 # hg stat 373 # hg stat
360 M f 374 M f
362 376
363 ui.merge overrules priority 377 ui.merge overrules priority
364 378
365 ui.merge specifies false: 379 ui.merge specifies false:
366 380
367 $ domerge -r 2 --config ui.merge=false 381 $ beforemerge
368 [merge-tools] 382 [merge-tools]
369 false.whatever= 383 false.whatever=
370 true.priority=1 384 true.priority=1
371 true.executable=cat 385 true.executable=cat
372 # hg update -C 1 386 # hg update -C 1
373 # hg merge -r 2 --config ui.merge=false 387 $ hg merge -r 2 --config ui.merge=false
374 merging f 388 merging f
375 merging f failed! 389 merging f failed!
376 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 390 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
377 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 391 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
392 [1]
393 $ aftermerge
378 # cat f 394 # cat f
379 revision 1 395 revision 1
380 space 396 space
381 # hg stat 397 # hg stat
382 M f 398 M f
383 ? f.orig 399 ? f.orig
384 400
385 ui.merge specifies internal:fail: 401 ui.merge specifies internal:fail:
386 402
387 $ domerge -r 2 --config ui.merge=internal:fail 403 $ beforemerge
388 [merge-tools] 404 [merge-tools]
389 false.whatever= 405 false.whatever=
390 true.priority=1 406 true.priority=1
391 true.executable=cat 407 true.executable=cat
392 # hg update -C 1 408 # hg update -C 1
393 # hg merge -r 2 --config ui.merge=internal:fail 409 $ hg merge -r 2 --config ui.merge=internal:fail
394 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 410 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
395 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 411 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
412 [1]
413 $ aftermerge
396 # cat f 414 # cat f
397 revision 1 415 revision 1
398 space 416 space
399 # hg stat 417 # hg stat
400 M f 418 M f
401 419
402 ui.merge specifies internal:local: 420 ui.merge specifies internal:local:
403 421
404 $ domerge -r 2 --config ui.merge=internal:local 422 $ beforemerge
405 [merge-tools] 423 [merge-tools]
406 false.whatever= 424 false.whatever=
407 true.priority=1 425 true.priority=1
408 true.executable=cat 426 true.executable=cat
409 # hg update -C 1 427 # hg update -C 1
410 # hg merge -r 2 --config ui.merge=internal:local 428 $ hg merge -r 2 --config ui.merge=internal:local
411 0 files updated, 1 files merged, 0 files removed, 0 files unresolved 429 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
412 (branch merge, don't forget to commit) 430 (branch merge, don't forget to commit)
431 $ aftermerge
413 # cat f 432 # cat f
414 revision 1 433 revision 1
415 space 434 space
416 # hg stat 435 # hg stat
417 M f 436 M f
418 437
419 ui.merge specifies internal:other: 438 ui.merge specifies internal:other:
420 439
421 $ domerge -r 2 --config ui.merge=internal:other 440 $ beforemerge
422 [merge-tools] 441 [merge-tools]
423 false.whatever= 442 false.whatever=
424 true.priority=1 443 true.priority=1
425 true.executable=cat 444 true.executable=cat
426 # hg update -C 1 445 # hg update -C 1
427 # hg merge -r 2 --config ui.merge=internal:other 446 $ hg merge -r 2 --config ui.merge=internal:other
428 0 files updated, 1 files merged, 0 files removed, 0 files unresolved 447 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
429 (branch merge, don't forget to commit) 448 (branch merge, don't forget to commit)
449 $ aftermerge
430 # cat f 450 # cat f
431 revision 2 451 revision 2
432 space 452 space
433 # hg stat 453 # hg stat
434 M f 454 M f
435 455
436 ui.merge specifies internal:prompt: 456 ui.merge specifies internal:prompt:
437 457
438 $ domerge -r 2 --config ui.merge=internal:prompt 458 $ beforemerge
439 [merge-tools] 459 [merge-tools]
440 false.whatever= 460 false.whatever=
441 true.priority=1 461 true.priority=1
442 true.executable=cat 462 true.executable=cat
443 # hg update -C 1 463 # hg update -C 1
444 # hg merge -r 2 --config ui.merge=internal:prompt 464 $ hg merge -r 2 --config ui.merge=internal:prompt
445 no tool found to merge f 465 no tool found to merge f
446 keep (l)ocal or take (o)ther? l 466 keep (l)ocal or take (o)ther? l
447 0 files updated, 1 files merged, 0 files removed, 0 files unresolved 467 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
448 (branch merge, don't forget to commit) 468 (branch merge, don't forget to commit)
469 $ aftermerge
449 # cat f 470 # cat f
450 revision 1 471 revision 1
451 space 472 space
452 # hg stat 473 # hg stat
453 M f 474 M f
454 475
455 ui.merge specifies internal:dump: 476 ui.merge specifies internal:dump:
456 477
457 $ domerge -r 2 --config ui.merge=internal:dump 478 $ beforemerge
458 [merge-tools] 479 [merge-tools]
459 false.whatever= 480 false.whatever=
460 true.priority=1 481 true.priority=1
461 true.executable=cat 482 true.executable=cat
462 # hg update -C 1 483 # hg update -C 1
463 # hg merge -r 2 --config ui.merge=internal:dump 484 $ hg merge -r 2 --config ui.merge=internal:dump
464 merging f 485 merging f
465 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 486 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
466 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 487 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
488 [1]
489 $ aftermerge
467 # cat f 490 # cat f
468 revision 1 491 revision 1
469 space 492 space
470 # hg stat 493 # hg stat
471 M f 494 M f
493 space 516 space
494 $ rm f.base f.local f.other 517 $ rm f.base f.local f.other
495 518
496 ui.merge specifies internal:other but is overruled by pattern for false: 519 ui.merge specifies internal:other but is overruled by pattern for false:
497 520
498 $ domerge -r 2 --config ui.merge=internal:other --config merge-patterns.f=false 521 $ beforemerge
499 [merge-tools] 522 [merge-tools]
500 false.whatever= 523 false.whatever=
501 true.priority=1 524 true.priority=1
502 true.executable=cat 525 true.executable=cat
503 # hg update -C 1 526 # hg update -C 1
504 # hg merge -r 2 --config ui.merge=internal:other --config merge-patterns.f=false 527 $ hg merge -r 2 --config ui.merge=internal:other --config merge-patterns.f=false
505 merging f 528 merging f
506 merging f failed! 529 merging f failed!
507 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 530 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
508 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 531 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
532 [1]
533 $ aftermerge
509 # cat f 534 # cat f
510 revision 1 535 revision 1
511 space 536 space
512 # hg stat 537 # hg stat
513 M f 538 M f
515 540
516 Premerge 541 Premerge
517 542
518 ui.merge specifies internal:other but is overruled by --tool=false 543 ui.merge specifies internal:other but is overruled by --tool=false
519 544
520 $ domerge -r 2 --config ui.merge=internal:other --tool=false 545 $ beforemerge
521 [merge-tools] 546 [merge-tools]
522 false.whatever= 547 false.whatever=
523 true.priority=1 548 true.priority=1
524 true.executable=cat 549 true.executable=cat
525 # hg update -C 1 550 # hg update -C 1
526 # hg merge -r 2 --config ui.merge=internal:other --tool=false 551 $ hg merge -r 2 --config ui.merge=internal:other --tool=false
527 merging f 552 merging f
528 merging f failed! 553 merging f failed!
529 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 554 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
530 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 555 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
556 [1]
557 $ aftermerge
531 # cat f 558 # cat f
532 revision 1 559 revision 1
533 space 560 space
534 # hg stat 561 # hg stat
535 M f 562 M f
536 ? f.orig 563 ? f.orig
537 564
538 HGMERGE specifies internal:other but is overruled by --tool=false 565 HGMERGE specifies internal:other but is overruled by --tool=false
539 566
540 $ HGMERGE=internal:other ; export HGMERGE 567 $ HGMERGE=internal:other ; export HGMERGE
541 $ domerge -r 2 --tool=false 568 $ beforemerge
542 [merge-tools] 569 [merge-tools]
543 false.whatever= 570 false.whatever=
544 true.priority=1 571 true.priority=1
545 true.executable=cat 572 true.executable=cat
546 # hg update -C 1 573 # hg update -C 1
547 # hg merge -r 2 --tool=false 574 $ hg merge -r 2 --tool=false
548 merging f 575 merging f
549 merging f failed! 576 merging f failed!
550 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 577 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
551 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 578 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
579 [1]
580 $ aftermerge
552 # cat f 581 # cat f
553 revision 1 582 revision 1
554 space 583 space
555 # hg stat 584 # hg stat
556 M f 585 M f
558 587
559 $ unset HGMERGE # make sure HGMERGE doesn't interfere with remaining tests 588 $ unset HGMERGE # make sure HGMERGE doesn't interfere with remaining tests
560 589
561 Default is silent simplemerge: 590 Default is silent simplemerge:
562 591
563 $ domerge -r 3 592 $ beforemerge
564 [merge-tools] 593 [merge-tools]
565 false.whatever= 594 false.whatever=
566 true.priority=1 595 true.priority=1
567 true.executable=cat 596 true.executable=cat
568 # hg update -C 1 597 # hg update -C 1
569 # hg merge -r 3 598 $ hg merge -r 3
570 merging f 599 merging f
571 0 files updated, 1 files merged, 0 files removed, 0 files unresolved 600 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
572 (branch merge, don't forget to commit) 601 (branch merge, don't forget to commit)
602 $ aftermerge
573 # cat f 603 # cat f
574 revision 1 604 revision 1
575 space 605 space
576 revision 3 606 revision 3
577 # hg stat 607 # hg stat
578 M f 608 M f
579 609
580 .premerge=True is same: 610 .premerge=True is same:
581 611
582 $ domerge -r 3 --config merge-tools.true.premerge=True 612 $ beforemerge
583 [merge-tools] 613 [merge-tools]
584 false.whatever= 614 false.whatever=
585 true.priority=1 615 true.priority=1
586 true.executable=cat 616 true.executable=cat
587 # hg update -C 1 617 # hg update -C 1
588 # hg merge -r 3 --config merge-tools.true.premerge=True 618 $ hg merge -r 3 --config merge-tools.true.premerge=True
589 merging f 619 merging f
590 0 files updated, 1 files merged, 0 files removed, 0 files unresolved 620 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
591 (branch merge, don't forget to commit) 621 (branch merge, don't forget to commit)
622 $ aftermerge
592 # cat f 623 # cat f
593 revision 1 624 revision 1
594 space 625 space
595 revision 3 626 revision 3
596 # hg stat 627 # hg stat
597 M f 628 M f
598 629
599 .premerge=False executes merge-tool: 630 .premerge=False executes merge-tool:
600 631
601 $ domerge -r 3 --config merge-tools.true.premerge=False 632 $ beforemerge
602 [merge-tools] 633 [merge-tools]
603 false.whatever= 634 false.whatever=
604 true.priority=1 635 true.priority=1
605 true.executable=cat 636 true.executable=cat
606 # hg update -C 1 637 # hg update -C 1
607 # hg merge -r 3 --config merge-tools.true.premerge=False 638 $ hg merge -r 3 --config merge-tools.true.premerge=False
608 merging f 639 merging f
609 revision 1 640 revision 1
610 space 641 space
611 revision 0 642 revision 0
612 space 643 space
613 revision 0 644 revision 0
614 space 645 space
615 revision 3 646 revision 3
616 0 files updated, 1 files merged, 0 files removed, 0 files unresolved 647 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
617 (branch merge, don't forget to commit) 648 (branch merge, don't forget to commit)
649 $ aftermerge
618 # cat f 650 # cat f
619 revision 1 651 revision 1
620 space 652 space
621 # hg stat 653 # hg stat
622 M f 654 M f
743 775
744 Merge post-processing 776 Merge post-processing
745 777
746 cat is a bad merge-tool and doesn't change: 778 cat is a bad merge-tool and doesn't change:
747 779
748 $ domerge -y -r 2 --config merge-tools.true.checkchanged=1 780 $ beforemerge
749 [merge-tools] 781 [merge-tools]
750 false.whatever= 782 false.whatever=
751 true.priority=1 783 true.priority=1
752 true.executable=cat 784 true.executable=cat
753 # hg update -C 1 785 # hg update -C 1
754 # hg merge -y -r 2 --config merge-tools.true.checkchanged=1 786 $ hg merge -y -r 2 --config merge-tools.true.checkchanged=1
755 merging f 787 merging f
756 revision 1 788 revision 1
757 space 789 space
758 revision 0 790 revision 0
759 space 791 space
762 output file f appears unchanged 794 output file f appears unchanged
763 was merge successful (yn)? n 795 was merge successful (yn)? n
764 merging f failed! 796 merging f failed!
765 0 files updated, 0 files merged, 0 files removed, 1 files unresolved 797 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
766 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon 798 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
767 # cat f 799 [1]
768 revision 1 800 $ aftermerge
769 space 801 # cat f
770 # hg stat 802 revision 1
771 M f 803 space
772 ? f.orig 804 # hg stat
805 M f
806 ? f.orig