Mercurial docs about what mercurial does when it has to do a 3way merge:
By default, Mercurial will attempt to do a classic 3-way merge on text
files internally before trying to use an external tool.
When it invokes the external tool, that is always a “manual merge”.
Not all merge tools are created equally, and as it turns out my merge tool of choice (Araxis Merge), is often able to do an automatic merge of 3 files, where mercurial’s internal merge tool was not able to do so.
This leads to the scenario of big merges where maybe a bunch of files merge cleanly, done by hg’s internal mergetool, and then some other files do not merge cleanly but could have if hg would let me specify its mergetool. I find this to make big merges very inefficient, as you need to context switch a lot: hg pops up my merge tool, I think “oh darn, conflict”, to then realize “oh wait, theres no conflict at all”
I wonder if I’m missing something here, or if there is really no way to make hg able to use a custom merge tool for its automatic attempts at doing merges.
I think you’re looking for a switch to make Araxis Merge close itself automatically if it can auto-merge. I looked at the command line reference and their SCM integration document, but I’m actually not sure what switch it would be. You’ll have to experiment yourself.
From Mercurial’s point of view there is no such thing as a “manual merge”. Mercurial tries to merge internally first (the so-called “premerge” step) and if that fails it looks for an external tool. The merge can still be fully automatic if that tool exists with an exit code of zero (successful exit). Mercurial will then consider the merge successful and go on to the next file. Depending on the tool, you wont notice this at all: Mercurial just runs the tool in the background and you’re only prompted for action when there is a serious merge conflict.