If you’re getting an abort: error: Broken pipe error when pushing a largish changeset:
$ hg push
pushing to http://user@example/hg/project
searching for changes
abort: error: Broken pipe
Then it’s probably due to issue 2716, which has already been fixed by coding rockstar Augie Fackler. Rock on, Augie.
Upgrade your Mercurial version — the just-released v1.5 does the trick for me.
However, that will probably lead you another error: abort: HTTP Error 413: Request Entity Too Large.
$ hg push
pushing to http://user@example/hg/project
searching for changes
abort: HTTP Error 413: Request Entity Too Large
In my case, this was because my mercurial server was sitting behind an nginx reverse proxy whose client_max_body_size was set to a measly 10 MB.
Raise your client_max_body_size limit, restart nginx and you should be good to go.