Push creates new remote heads! (did you forget to merge? use push -f to force)

Ok I've had a little google and can't find a solution as i've stumbled across the same message but different ways in which people have got it. I'm new to mecurial and want to make sure i'm doing this correctly.

So i'm getting the error message as above. I have a dev site and a live site and i'm trying to push the code to codebase.

However yesterday I accidentally did hg add which added all the media which i didn't want to do. I did revert after to remove all the media files from codebase, by then committing and push the changes. So today i've been making changes to the CSS file and a few templates. I've gone to commit my changes and push them but when i run hg push I get the error above.

I've run hg log and there are only 6 commits as it's a clean/new branch/project. Any help would be much appreciated and I apologize if i've not explained anything correctly!


Solution 1:

This isn't an "error" message; it's a totally normal situation. That message is saying "hey, other people pushed new work to that repository while you were doing your work, you should probably integrate theirs into your so they don't have to integrate yours into theirs?"

So first do a:

hg pull

and then a:

hg merge

Incidentally the revert you did if you actually used the hg revert command didn't remove those files from history, so your history is probably pretty big.

Consider reading the first few chapters of the Mercurial book it covers these situations quite well.

Solution 2:

If you want to cancel your conflicting changes

hg outgoing

You should see lines containing your commited/conflicting changes which are not pushed. Search for the changeset revision. Here 64

searching for changes
changeset:   64:1830948c246e

Then

hg strip 64

Solution 3:

This worked for me.

hg push -f

For more command, try

hg help push

Solution 4:

On TortoiseHg you can do this:

1 => Commit your files

2 => Go do your new branch, where you want to push your code

3 => On this branch, run Merge with develop

4 => Push your code whithout errors!