Search code examples
mercurialbitbuckettortoisehg

why is a new head created during this push?


My production code is in the default branch, new features go into named branches which get merged with default when the new features are OK. I recently merged a development daytemp into default and started to work on the branch separate processes. I pushed what I had to bitbucket, this is the status it shows now:

bitbucket

I realized there was a bug in default so, at another computer, I pulled, updated to default and fixed the bug. I commited to commit a7cf17ca158e ("bug: all bars were displayed...") and wanted to push to bitbucket. This is what Tortoise HG on that computer shows:

Tortoise HG

Can you please help me to understand where the problem is? From the mercurial docs I understand that I have a fairly standard situation (I have two heads, one for default and one for separate processes) so I do not understand which new one bitbucket warns me I would be creating when pushing.

EDIT it turned out that, following Vince's comment, there indeed was a new head hidden down the graph.

Output hg outgoing:

changeset:   152:ce343f208e48
parent:      150:ebd10baed373
user:        wojtek
date:        Thu May 15 06:21:43 2014 +0200
summary:     bug: time string when no connection

changeset:   161:a7cf17ca158e
tag:         tip
parent:      159:dd4af8e3f7d5
user:        wojtek
date:        Fri May 16 19:55:54 2014 +0200
summary:     bug: all bars were displayed after a day (not cleaned up)

Than changeset 152 was the culprit. After merging it with the current default the push went fine.


Solution

  • What do you have when doing an hg outgoing?

    Could you have another default head in your current repo, not visible in that scope, but attempted to be pushed as well? What I'm saying is the 2 heads may already be in your local repo.