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