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@499:

This error indicates that the remote repository has some changes in it Chris@499: that you do not have in your local repository (and that are in Chris@499: branches that you have also changed). Perhaps someone else made these Chris@499: changes and pushed them, or they may have come from you pushing from a Chris@499: different computer.

Chris@499: Chris@499:

A good principle is that you should review and test your changes Chris@499: before you push them to another repository. Although (with a Chris@499: distributed version control system) it's generally OK to commit Chris@499: changes locally that don't really work or that aren't complete enough Chris@499: to test, it's a bad idea to push anything that would cause the remote Chris@499: repository to have an untested set of changes in it.

Chris@499: Chris@499:

For that reason, if you change some files and someone else changes Chris@499: others and you both push them without knowing about the other one, Chris@499: Mercurial must refuse whichever push happens later – it won't simply Chris@499: merge 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@499: 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@499:

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: