I am aware of Mercurial for Beginners: The Definitive Practical Guide and answers like Mercurial merge branches? (abort: push creates new remote branches)
Here I've inadvertently created a situation where Mercurial wants to create a new remote head. What's the best way to undo this, and leave little or no trace of this mistake on the remote side?
###> hg push
pushing to http://example.com
searching for changes
abort: push creates new remote heads on branch 'default'!
(did you forget to merge? use push -f to force)
###> hg revert --all -r tip
###> hg update -C
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
###> hg incoming
comparing with http://example.com
searching for changes
no changes found
###> hg summary
parent: 488:e3db024fe901 tip
Misc.
branch: default
commit: (clean)
update: 6 new changesets, 2 branch heads (merge)
###> hg pull
pulling from http://example.com
searching for changes
no changes found
###> hg glog
@ changeset: 488:e3db024fe901
| tag: tip
| summary: Misc.
|
o changeset: 487:b207579b9d41
| parent: 480:ce775708800c
| summary: Misc.
|
| o changeset: 486:59a7a5b34c7f
| | user: other
| | summary: fixes
| |
| o changeset: 485:b28264333e18
| | user: other
| | summary: binary
If I merge, it sort of seems OK:
hg merge
abort: outstanding uncommitted merges
But hg diff
shows all sorts of changes I did not make. I'm willing to re-apply my changes... how can I bring this all back to a single tip, abandoning all local changes?