Merge trunk to branch in Subversion
SvnMergeSvn Problem Overview
I'm using Subversion 1.4.6, and I cannot upgrade to version 1.5 right now.
The situation:
-
The trunk has a lot of structural changes (i.e. moving files around, mostly).
-
I have a branch that was recently merged from the trunk, but before the major changes.
What is the best way to merge the trunk to the branch?
What I had in mind:
-
First carefully merge the branch to the trunk, by merging only the modified files in the branch to the trunk.
-
Copy the trunk to the branch. What is the best way to do this without losing the branch history? Should I deprecate the branch and create a new one?
Okay, it looks like I didn't given SVN enough credit. It's smart enough after all. I was just put off by the output of "D" and "A", but in the background it did a move.
Svn Solutions
Solution 1 - Svn
Is there something that prevents you from merging all revisions on trunk since the last merge?
svn merge -rLastRevisionMergedFromTrunkToBranch:HEAD url/of/trunk path/to/branch/wc
should work just fine. At least if you want to merge all changes on trunk to your branch.
Solution 2 - Svn
Last revision merged from trunk to branch can be found by running this command inside the working copy directory:
svn log -v --stop-on-copy
Solution 3 - Svn
It is “old-fashioned” way to specify ranges of revisions you wish to merge. With 1.5+ you can use:
svn merge HEAD url/of/trunk path/to/branch/wc