I've been reading up on branching/merging with Subversion 1.5 using the excellent and free Version Control with Subversion book. I think that I understand how to use the Subversion command line client to perform the actions that I need most often, which are:
Update Branch with Changes from Trunk
From the branch's working directory run:
svn merge http://svn.myurl.com/proj/trunk
Merge Branch into Trunk
From the trunk's working directory run:
svn merge --reintegrate http://svn.myurl.com/proj/branches/mybranch
However, we are using TortoiseSVN 1.5 as our interface to Subversion. I would like to know how best to perform these operations with TortoiseSVN. The new dialog provides three different options on the main menu.
- Merge a range of revisions
- Reintegrate a branch
- Merge two different trees
From what I can gather, TortoiseSVN always executes svn with the following syntax.
svn merge [--dry-run] --force From_URL@revN To_URL@revM PATH
Additionally, reintegrate a branch often fails with a message stating that some targets have not been merged and so it cannot continue, and so I had to use option #3.
My questions are:
- How do I use TortoiseSVN 1.5 to merge changes from the trunk to a branch?
- How do I use TortoiseSVN 1.5 to merge the branch to the trunk, with and without the reintegrate method?
- Which of the above options should I use for each, and why?
EDIT
Through "dry run" testing I have found that the command line Subversion operation
svn merge http://svn.myurl.com/proj/trunk
is analogous to option #1 (Merge a Range of Revisions) in TortoiseSVN, as long as I leave the revision range blank.