Today I had a problem with a merge. I thought I had merged all changes from a branch into the trunk, so I deleted the branch. But somehow (probably forgetting to remove a
--dry-run) not all got merged. So I had to merge the changes again. I thought I could do that with just a:
svn merge -r 3173:3246 $SVN/project/branches/MY_BRANCH .
Where 3173 is the revision in which the branch was created and 3246 is one revision before I deleted the branch.
But this gave me a svn error:
svn: '/svn/project/!svn/bc/3251/branches/MY_BRANCH' path not found
That 3251 is the HEAD revision number. So even though I’m specifying the revisions I want to merge, SVN first checks the given path using the HEAD revision. So in stead of the above command I had to specify the revision in the SVN URL as well:
svn merge -r 3173:3246 $SVN/project/branches/MY_BRANCH@3246 .
This worked perfectly. So if you know you have to specify the revision just before the deletion twice, it’s not that hard to merge changes from a deleted branch. I was already thinking about a checkout of the deleted branch and lots of copy’s. But fortunately for me that wasn’t necessary.