Minor fix for revert: No need to make a backup when forgetting added files.
echo foo > foo && hg add foo && hg revert foo
creates foo.orig, though foo is not changed or deleted.
pushing to ../a
searching for changes
abort: unsynced remote changes!
(did you forget to sync? use push -f to force)
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
pushing to ../a
searching for changes
abort: push creates new remote branches!
(did you forget to merge? use push -f to force)
pushing to ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 1 changes to 1 files
adding foo
merging foo
pushing to ../c
searching for changes
abort: push creates new remote branches!
(did you forget to merge? use push -f to force)
pushing to ../c
searching for changes
no changes found
pushing to ../c
searching for changes
abort: push creates new remote branches!
(did you forget to merge? use push -f to force)
pushing to ../c
searching for changes
abort: push creates new remote branches!
(did you forget to merge? use push -f to force)