Multiple heads when trying to update or trying to fetch
hg fetch
abort: multiple heads in this branch (use "hg heads ." and "hg merge" to merge)
Running hg heads (without the dot) returns a lot of heads.
With the dot there are 3 heads...
hg heads .
changeset:   3818:7a511cd2c9fe
tag:         tip
parent:      3816:e9b8cdddef15
user:        User2
date:        Yesterday
summary:     Note about this commit
changeset:   3817:2bedb24b7f36
user:        UserMe
date:        Today
summary:     Note about that commit
changeset:   3403:358f6ec2a17e
parent:      3402:c6ca1879d9ff
parent:      3401:134c61c711d9
user:        UserMe
date:        13 months ago on a day when I was about to go on holidays
summary:     merge in some other thing
So the problem is that one dated "13 months ago on a day when I was about to go on holidays".
Hmmm. Looking at what it does, it included code that is merged in elsewhere anyway.
Infact -- 3403 and its troublesome parent 3402 are "secret". So these are secret commits. How can I at least close them out?
hg merge
abort: branch 'default' has 3 heads - please merge with an explicit rev
(run 'hg heads .' to see heads)
hg merge 3816
abort: merging with a working directory ancestor has no effect
Go back to the old troublesome branch, and close it...
hg update -r 3403
hg commit --close-branch -m 'Closing old branch'
Then come back to the default/tip
hg update -C default
Now merge the work that hasn't been merged
hg merge 3817
And commit it...
hg commit -Am "merge that sucker."
For bonus points: rebase.