Chris@499: Chris@499: Chris@499: Chris@499:

I tried to push my changes, but it told me “the remote repository may have been changed by someone else” and refused

Chris@499: Chris@500:

This indicates that the remote repository has some changes in it that Chris@500: you do not have in your local repository (and that are in branches Chris@500: that you have also changed).

Chris@500: Chris@500:

Perhaps someone else made these changes and pushed them, or they may Chris@500: have been pushed by you from a different computer.

Chris@500: Chris@500:

Why should that prevent me from pushing my changes?

Chris@499: Chris@499:

A good principle is that you should review and test your changes Chris@500: before you push them to another repository. It may be OK to commit Chris@499: changes locally that don't really work or that aren't complete enough Chris@500: to test, but it's a bad idea to push anything that would cause the Chris@500: remote repository to have an untested set of changes in it.

Chris@499: Chris@500:

For this reason, if you change some files, someone else changes some Chris@500: others, and you both try to push them without knowing about the other Chris@500: one, Mercurial must refuse the second push – it can't simply merge Chris@500: the changes because the result might not make any sense.

Chris@499: Chris@499:

Instead you must pull the other person's changes and merge them Chris@500: locally before you push. Fortunately, this is easy to do:

Chris@499: Chris@499:

1. Click Pull on the main toolbar at the top of the EasyMercurial window. Chris@499:

Chris@499: Chris@499:

2. Click Merge in the toolbar on the left. Chris@531:

Chris@499: Chris@499:

3. Review or test the resulting merged version in your local working folder.

Chris@499: Chris@499:

4. Commit the merged version.

Chris@499: Chris@499:

5. Push again to the remote repository.

Chris@499: