Greetings, folks,

Since we're getting to the point where people will want to merge their branches back into the trunk, I thought it would be helpful to briefly overview the default process.

1. Start off with your working copy in your branch. Make all final changes to your branch and commit them.

2. Do an SVN Log on your branch to find out the revision number where the branch was created. You'll generally see a "Copied remotely" log message. You can tell the Log utility to "stop on copy" so that the oldest message will be the place where the branch was made.

3. Write down the revision number where the branch was created and the revision number of the final commit. In my case, for branch HACK-631, it was revision number 1279 to revision number 1366.

4. Now do an SVN switch to the trunk, so that your working copy is the trunk of the system. You're doing this because you want to merge all of the changes made in your branch into your working copy that contains the trunk. If problems occur, you can fix them in your working copy. So, to do this, do an SVN merge, where you specify the URL of the branch you're working on (in my case, HACK-631) and the revision interval (in my case, 1279:1366). TortoiseSVN has a merge dialog box that makes this quite simple.

5. Fix any conflicts.

6. Do a 'freshStart all.junit' with an appropriate configuration.

7. Commit your changes to the trunk, which now contains the merge of the branch and the trunk. In your log message, you should note that the commit involves the merge of branch HACK-631, revisions 1279:1366 (or whatever it is in your case). This is an important habit to get used to when writing the log message for post-merge commits (see below).

-------------------------------------

The above instructions should suffice when you have the 'vanilla' case, which is that you didn't do any intermediate merges from the branch to the trunk or the trunk to the branch. If you've done one or more of these "intermediate" merges, then it is vitally important that you note the revision numbers of the intermediate merges in the log message, because in SVN you have to be careful not to do a 'duplicate' merge. See the SVN books for details on this.

Cheers,
Philip

Reply via email to