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.