This extension builds on the RebaseExtension but adds some simple logic that chooses a merge instead of a rebase if there are conflicts.
This extension is not distributed with Mercurial.
Download site: https://bitbucket.org/marcusl/ml-hgext/src/tip/rebaseif.py
Issue tracker: https://bitbucket.org/marcusl/ml-hgext/issues
If you like it, drop a note here: https://www.ohloh.net/p/ml-hgext
The extension provides both a new command rebaseif as well as a new option to pull --rebaseif that invoke the rebaseif procedure after pulling. (Similar to RebaseExtension 's --rebase option).
This is useful since manual merges are error prone and a merge commit more clearly expresses each side of the merge, and the merge resolution choices, than a rebase (which tends to bundle all the local changes and the merge ops together and giving little chance of a rollback.)
The background for this is described in this StackOverflow question.
Configure your .hgrc to enable the extension by adding following lines:
[extensions] rebaseif = path/to/rebaseif.py
> hg rebaseif
> hg pull --rebaseif