Q:

Mercurial push requires a merge, why? 

I use IntelliJ IDEA with hg4idea plugin. 
My team and myself are all working on the same branch "default". 
All I want to do is:

Make my changes locally
Take an update from "default" to get the latest changes (hg pull)
Commit my changes (hg commit)
Push my changes (hg push)

This workflow works very well in Eclipse, but somehow it doesn't work in IDEA: when I execute the last step (hg push) it warns me that there are more than one heads and I need to merge first (so I'm forced to execute "hg merge", and then a separate commit for the merge itself). 
Can someone explain why this is happening?  Exactly, why when I do "hg pull" and there are new changes in the remote "default" branch - there are two heads?  I don't want to re-commit the changes someone else commited and pushed already. 

A:

This situation is summarized in the hg book here:
http://hgbook.red-bean.com/read/a-tour-of-mercurial-merging-work.html
In the time since you pulled, someone else has pushed their work to the server.  You need to pull and then merge.  The same thing didn't happen with Eclipse either because it's automatically doing the merge for you or you never got into a "race" with one of your teammates.