# HG changeset patch # User Chris Cannam # Date 1314045115 -3600 # Node ID b3309be1640ff1d122d2623ab29689642d867039 # Parent 21aa41b62c3a701b48ad4f7c462db61f3b7e5757 More help. This I think will do for 1.0. diff -r 21aa41b62c3a -r b3309be1640f easyhg.qrc --- a/easyhg.qrc Mon Aug 22 18:46:06 2011 +0100 +++ b/easyhg.qrc Mon Aug 22 21:31:55 2011 +0100 @@ -40,6 +40,7 @@ help/a-30.html help/a-31.html help/a-32.html + help/a-33.html help/images/openremote50.png help/images/openfolder50.png help/images/openlocal50.png diff -r 21aa41b62c3a -r b3309be1640f help/a-11.html --- a/help/a-11.html Mon Aug 22 18:46:06 2011 +0100 +++ b/help/a-11.html Mon Aug 22 21:31:55 2011 +0100 @@ -1,7 +1,7 @@ -

I have a folder of source code or documents on my computer and I want to use version control to manage it

+

I have a folder of source code or documents on my computer and I want to use version control to manage them

To start using version control for a project folder, you need to initialise a repository there. EasyMercurial does this for you when diff -r 21aa41b62c3a -r b3309be1640f help/a-12.html --- a/help/a-12.html Mon Aug 22 18:46:06 2011 +0100 +++ b/help/a-12.html Mon Aug 22 21:31:55 2011 +0100 @@ -1,10 +1,10 @@ -

I want to start a completely new project using version control

+

I want to start a new project using version control

-

To start using version control for an initially empty project, just -initialise a repository in an empty folder:

+

You can initialise a repository in an empty folder, in order to start +using version control for a new project:

1. Click the Open toolbar button or use File -> Open

@@ -18,5 +18,5 @@

A new repository will be created, stowed into the empty working folder you selected. At first, it will have an empty history. You can then -start to add and commit changes to your files. +start to add files and commit changes to your files.

diff -r 21aa41b62c3a -r b3309be1640f help/a-30.html --- a/help/a-30.html Mon Aug 22 18:46:06 2011 +0100 +++ b/help/a-30.html Mon Aug 22 21:31:55 2011 +0100 @@ -7,5 +7,5 @@

Permit your colleagues to “pull” your changes directly from the local repository in your working folder, or

-

“Push” your changes to a remote repository which you can all use as a master copy.

+

“Push” your changes to a shared remote repository which you can all use as a master copy.

diff -r 21aa41b62c3a -r b3309be1640f help/a-31.html --- a/help/a-31.html Mon Aug 22 18:46:06 2011 +0100 +++ b/help/a-31.html Mon Aug 22 21:31:55 2011 +0100 @@ -1,7 +1,7 @@ -

I want to let my colleagues pull changes from my local repository

+

I want to let my colleagues pull changes directly from my local repository

You can do this on a temporary basis using EasyMercurial, for occasional ad-hoc transfers:

diff -r 21aa41b62c3a -r b3309be1640f help/a-32.html --- a/help/a-32.html Mon Aug 22 18:46:06 2011 +0100 +++ b/help/a-32.html Mon Aug 22 21:31:55 2011 +0100 @@ -1,5 +1,37 @@ -

I want to push my changes to a master repository shared with my colleagues

+

I want to put my changes into a master repository shared with my colleagues

+

Setting up such a repository with a properly configured remote server +is out of the scope of this Help, but you generally want one of the +following:

+ +

A server that everyone on your team has secure ssh access to, or

+ +

An account with a managed online Mercurial hosting service

+ +

With either of the above, you should be able to create a new +repository on the server and obtain a Mercurial URL for it. That may +be a ssh://host/path URL in the former case, or the URL (often an +https one) provided by the service in the latter case.

+ +

In EasyMercurial, you then:

+ +

1. Go to Remote -> Set Remote Location.., enter the URL of the remote repository and click OK. +

+ +

2. Click Push on the main toolbar at the top of the EasyMercurial window.

+ +

This will push all of the changes that you have made in your local +repository (since you pushed to the same target, if you ever have). +You should do this regularly whenever you have a coherent set of +changes for others to use or test. Your colleagues can then pull from +the same remote repository URL to obtain your changes.

+ +

For this to work, the target repository must be related to the local +one. That means either a repository that has been pulled to, or +pushed to from, the local repository before; or the repository that +was initially used to clone the local one from; or else an empty +repository.

+ diff -r 21aa41b62c3a -r b3309be1640f help/a-33.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/help/a-33.html Mon Aug 22 21:31:55 2011 +0100 @@ -0,0 +1,38 @@ + + + +

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

+ +

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

+ +

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

+ +

For that reason, if you change some files and someone else changes +others and you both push them without knowing about the other one, +Mercurial must refuse whichever push happens later – it won't simply +merge the changes because the result might not make any sense.

+ +

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

+ +

1. Click Pull on the main toolbar at the top of the EasyMercurial window. +

+ +

2. Click Merge in the toolbar on the left. +

+ +

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

+ +

4. Commit the merged version.

+ +

5. Push again to the remote repository.

+ diff -r 21aa41b62c3a -r b3309be1640f help/topics.html --- a/help/topics.html Mon Aug 22 18:46:06 2011 +0100 +++ b/help/topics.html Mon Aug 22 21:31:55 2011 +0100 @@ -7,8 +7,8 @@

What is a repository?

Opening and initialising things

Someone gave me a repository URL and asked me to clone it

-

I have a folder of source code or documents on my computer and I want to use version control to manage it

-

I want to start a completely new project using version control

+

I have a folder of source code or documents on my computer and I want to use version control to manage them

+

I want to start a new project using version control

I have a Mercurial repository on my local computer already and I want to use it with EasyMercurial

Making changes

I've added a new file: what do I do with it?

@@ -17,5 +17,6 @@

I just deleted a file using the system file manager – then remembered I hadn't told the version control tool about it – what now?

Sharing changes

I have committed some changes – how do I share them with my colleagues?

-

I want to let my colleagues pull changes from my local repository

-

I want to push my changes to a master repository shared with my colleagues

+

I want to let my colleagues pull changes directly from my local repository

+

I want to put my changes into a master repository shared with my colleagues

+

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

diff -r 21aa41b62c3a -r b3309be1640f help/topics/11.txt --- a/help/topics/11.txt Mon Aug 22 18:46:06 2011 +0100 +++ b/help/topics/11.txt Mon Aug 22 21:31:55 2011 +0100 @@ -1,6 +1,6 @@ {Opening and initialising things} -I have a folder of source code or documents on my computer and I want to use version control to manage it +I have a folder of source code or documents on my computer and I want to use version control to manage them To start using version control for a project folder, you need to initialise a repository there. EasyMercurial does this for you when diff -r 21aa41b62c3a -r b3309be1640f help/topics/12.txt --- a/help/topics/12.txt Mon Aug 22 18:46:06 2011 +0100 +++ b/help/topics/12.txt Mon Aug 22 21:31:55 2011 +0100 @@ -1,9 +1,9 @@ {Opening and initialising things} -I want to start a completely new project using version control +I want to start a new project using version control -To start using version control for an initially empty project, just -initialise a repository in an empty folder: +You can initialise a repository in an empty folder, in order to start +using version control for a new project: *1. Click the Open toolbar button or use File -> Open* @@ -17,6 +17,6 @@ A new repository will be created, stowed into the empty working folder you selected. At first, it will have an empty history. You can then -start to add and commit changes to your files. +start to add files and commit changes to your files. * Note: the equivalent Mercurial command for this is *hg init* diff -r 21aa41b62c3a -r b3309be1640f help/topics/30.txt --- a/help/topics/30.txt Mon Aug 22 18:46:06 2011 +0100 +++ b/help/topics/30.txt Mon Aug 22 21:31:55 2011 +0100 @@ -6,5 +6,5 @@ [[31|Permit your colleagues to "pull" your changes]] directly from the local repository in your working folder, _or_ -[[32|"Push" your changes to a remote repository]] which you can all use as a master copy. +[[32|"Push" your changes to a shared remote repository]] which you can all use as a master copy. diff -r 21aa41b62c3a -r b3309be1640f help/topics/31.txt --- a/help/topics/31.txt Mon Aug 22 18:46:06 2011 +0100 +++ b/help/topics/31.txt Mon Aug 22 21:31:55 2011 +0100 @@ -1,6 +1,6 @@ {Sharing changes} -I want to let my colleagues pull changes from my local repository +I want to let my colleagues pull changes directly from my local repository You can do this on a temporary basis using EasyMercurial, for occasional ad-hoc transfers: diff -r 21aa41b62c3a -r b3309be1640f help/topics/32.txt --- a/help/topics/32.txt Mon Aug 22 18:46:06 2011 +0100 +++ b/help/topics/32.txt Mon Aug 22 21:31:55 2011 +0100 @@ -1,4 +1,37 @@ {Sharing changes} -I want to push my changes to a master repository shared with my colleagues +I want to put my changes into a master repository shared with my colleagues +Setting up such a repository with a properly configured remote server +is out of the scope of this Help, but you generally want one of the +following: + +*A server that everyone on your team has secure ssh access to*, _or_ + +*An account with a managed online Mercurial hosting service* + +With either of the above, you should be able to create a new +repository on the server and obtain a Mercurial URL for it. That may +be a _ssh://host/path_ URL in the former case, or the URL (often an +_https_ one) provided by the service in the latter case. + +In EasyMercurial, you then: + +*1. Go to Remote -> Set Remote Location.., enter the URL of the remote repository and click OK.* + + * This tells EasyMercurial to use that URL as the default location for subsequent push and pull operations. + +*2. Click Push on the main toolbar at the top of the EasyMercurial window.* + +This will push all of the changes that you have made in your local +repository (since you pushed to the same target, if you ever have). +You should do this regularly whenever you have a coherent set of +changes for others to use or test. Your colleagues can then pull from +the same remote repository URL to obtain your changes. + +For this to work, the target repository must be _related_ to the local +one. That means either a repository that has been pulled to, or +pushed to from, the local repository before; or the repository that +was initially used to clone the local one from; or else an empty +repository. + diff -r 21aa41b62c3a -r b3309be1640f help/topics/33.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/help/topics/33.txt Mon Aug 22 21:31:55 2011 +0100 @@ -0,0 +1,39 @@ +{Sharing changes} + +I tried to push my changes, but it told me "the remote repository may have been changed by someone else" and refused + +This error indicates that the remote repository has some changes in it +that you do not have in your local repository (and that are in +branches that you have also changed). Perhaps someone else made these +changes and pushed them, or they may have come from you pushing from a +different computer. + +A good principle is that you should review and test your changes +before you push them to another repository. Although (with a +distributed version control system) it's generally OK to commit +changes locally that don't really work or that aren't complete enough +to test, it's a bad idea to push anything that would cause the remote +repository to have an untested set of changes in it. + +For that reason, if you change some files and someone else changes +others and you both push them without knowing about the other one, +Mercurial must refuse whichever push happens later -- it won't simply +merge the changes because the result might not make any sense. + +Instead you must pull the other person's changes and merge them +locally before you push. Fortunately, this is easy to do. + +*1. Click Pull on the main toolbar at the top of the EasyMercurial window.* + + * You should see that some changes are pulled and added to your local repository. This will usually lead to a forked graph in the History pane, as your changes and the other user's were both started from the same parent at the same time. + +*2. Click Merge in the toolbar on the left.* + + * Any changes that affect different files, or that affect different parts of the same file, will be merged automatically. For changes that affect the same parts of the same file, you will be asked to choose which change to include in the merged copy. + +*3. Review or test the resulting merged version in your local working folder.* + +*4. Commit the merged version.* + +*5. Push again to the remote repository.* +