diff --git a/tests/test-merge-halt.t b/tests/test-merge-halt.t --- a/tests/test-merge-halt.t +++ b/tests/test-merge-halt.t @@ -73,3 +73,75 @@ $ hg rebase --abort rebase aborted +Check that successful tool with failed post-check halts the merge + $ echo onfailure=halt >> $HGRCPATH + $ cat <> $HGRCPATH + > [merge-tools] + > true.check=changed + > EOS + $ hg rebase -s 1 -d 2 --tool true + rebasing 1:1f28a51c3c9b "c" + merging a + merging b + output file a appears unchanged + was merge successful (yn)? n + merging a failed! + merge halted after failed merge (see hg resolve) + [1] + + $ hg resolve --list + U a + U b + + $ hg rebase --abort + rebase aborted + +Check conflicts + $ cat <> $HGRCPATH + > [merge-tools] + > true.check=conflicts + > true.premerge=keep + > EOS + $ hg rebase -s 1 -d 2 --tool true + rebasing 1:1f28a51c3c9b "c" + merging a + merging b + merging a failed! + merge halted after failed merge (see hg resolve) + [1] + +Check conflict prompts + $ hg rebase --abort + rebase aborted + $ hg rebase -s 1 -d 2 --tool true --config merge-tools.true.check=prompt + rebasing 1:1f28a51c3c9b "c" + merging a + merging b + was merge of 'a' successful (yn)? n + merging a failed! + merge halted after failed merge (see hg resolve) + [1] + $ hg rebase --abort + rebase aborted + +Check that a requested abort actually works + $ cat < n + > EOS + rebasing 1:1f28a51c3c9b "c" + merging a + merging b + merging a failed! + merge halted after failed merge (see hg resolve) + [1] + + $ hg rebase --abort + rebase aborted + +Check that successful tool otherwise allows the merge to continue + $ hg rebase -s 1 -d 2 --tool echo --keep --config merge-tools.echo.premerge=keep + rebasing 1:1f28a51c3c9b "c" + merging a + merging b + $TESTTMP/repo/a *a~base* *a~other* (glob) + $TESTTMP/repo/b *b~base* *b~other* (glob)