Hello,
So I have an issue that is causing me a lot of grief in Subverion. I am working in a branch that is supposed to remain active until my feature set is development complete before re-integrating. Unfortunately, something I have completed has now been deemed by the business to be 'mission critical' and they want me to cherry pick that functionality out of the branch and push it into the trunk so it can get picked up by QA.
The problem I have is that I developed the functionality in a separate directory which I created while working on something else entirely. So in order to merge the remaining code that my functionality requires, I first need to pull in the directory creation that I did previously.
Here are the revisions that I need to yank:
Rev 20
A ./project_foo
A ./project_foo/not_required_file.txt
Rev 24
A ./project_foo/required_file.txt
So to get this into the trunk I had to do the following:
svn merge -r20:21 -> this gets me the directory as well as the not_required_file.txt
svn revert project_foo/not_required_file.txt -> get rid of the file I don't want
svn merge -r24:25 -> this gets me the file I require
Which worked and got the stuff into the trunk that I wanted BUT when I was dev complete and ran svn merge --reintegrate, I (obviously) did not get the not_required_file.txt back from Revision 20 and thus ran into tree conflicts on it (from further changes I made later).
So I am looking for some guidance on what to do in these situations.
- Is there a way of merging in only the specific changes I want from a specific revision?
- Is there any way of grabbing the changes I deliberately missed when I re-integrate the entire branch?
- Could I create the directory structure I need in the trunk and then merge over only the file changes?
- Can I create another branch, move the required changes over there, reintegrate that branch and then pull from the trunk to my original branch?
Thanks.