My most hated behavior of mercurial:
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 3 changes to 3 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
remote: 1 changesets found
running hook post-pull: hg up
abort: crosses branches (merge branches or use --clean to discard changes)
warning: post-pull hook exited with status 255
$ hg merge
abort: outstanding uncommitted changes (use 'hg status' to list changes)
$ hg commit
nothing changed
Solution:
hg merge --force
Hopefully there are other solutions that I'll eventually add to this.