Reputation: 15414
I have a developer who got a little ambitious, and didn't understand branching in SVN and came up with their own solution. They needed to make a big change, but didn't want to impede any bug fixes in the main trunk. So, they created a new folder at the same level as main project folder for this change.
The original looks like this (at rev 100)
/bigProj/branch
/tag
/trunk/config
/docs
/src
and the new folder looks like this (at rev 150)
/bigProjChange/trunk/config
/docs
/src
What I'd love to do, is airlift the contents of bigProjChange
either into a branch of bigProj
or append those ~50 revisions onto the end of the trunk of bigProj
(there were no bug fixes, so this creativity served no purpose). And then blow away bigProjChange
because of the confusion it is causing.
Is there a way to do this and keep the changes/comments from everything that happened in bigProjChange
? Or am I stuck taking the contents of Rev 150 of bigProjChange
and doing a mas update of bigProj
's trunk?
Upvotes: 2
Views: 49
Reputation: 4846
If both bigProj
and bigProjChanged
live in the same repository, you can simply svn merge
them as you would with any branch. Keep in mind the so-called standard layout with trunk
/branches
/tags
is purely by convention. To Subversion, the directory names don't make a difference.
The easy way to resolve this is as you would do any reintegrate-merge:
svn switch ^/bigProj/trunk
svn merge ^/bigProjChanged/trunk .
# resolve conflicts, if any
svn commit -m"Reintegrate bigProjChanged"
svn rm ^/bigProjChanged -m"Blow away!"
I would even allow for the hypothesis that the developer who created those branches had a pretty good understanding of branching in Subversion.
Upvotes: 3