我们有一个包含多个子项目的大型项目.我们正在接近我们项目的发布,并且一个子项目中的新功能将不会像原计划那样在发布之前完成.我想做的是将与新功能相关的子项目的所有更改移动到一个单独的分支中,以继续为下一个版本工作,但我不确定如何最好地完成此任务.
情况基本上是:
/proj/trunk/A/ /proj/trunk/B/ /proj/trunk/C/
自上次发布以来,我们对a..z进行了修订.修订版d,f,g和j..n包含与C中的新特征相关的工作,该特征不会及时完成.修订版e,h和q包含C中无关的更改,这些更改需要在此版本中.我想创建一个/proj/branches/new-feature-for-C/并移动更改d,f,g和j..n,同时保持e,h和q在trunk中.移动到分支的更改与要保留在主干上的更改之间没有重叠,并且要移动到分支的任何更改都不依赖于自上一版本以来任何其他子项目中的任何更改.
And*_*Cox 10
我就是这样做的:将主干复制到分支,然后反向合并变更集.
因此,如果主干位于http://svnserver/svn/myrepo/trunk/C
且不需要的更改集是3, 6 , 9-11
svn copy http://svnserver/svn/myrepo/trunk/C http://svnserver/svn/myrepo/branch/C -m "Branch no completable work"
svn merge -c -3,-6 http://svnserver/svn/myrepo/trunk/C <filepath to root of trunk>
svn merge -r 11:8 http://svnserver/svn/myrepo/trunk/C <filepath to root of trunk>
****CHECK EVERY THING WORKED***
svn commit . -m "Removed some changes that weren't to be finished"
Run Code Online (Sandbox Code Playgroud)
请注意,它-r 11:8比您想要停止的变更集少一个