cherrypick svn合并分支到trunk,然后合并--reintegrate?

时间:2012-07-12 19:12:14

标签: svn branching-and-merging

所以我有这个项目在2个版本中进行并发工作,即trunk和branch1。在某些时候我被告知“不要为rel1做更多的构建,修复rel2中的那些bug。”所以我在branch1中制作了也适用于trunk的错误修正。后来我被告知“如果我们将rel1与那些已知的bug相关联,那将是一个很大的PITA。请在rel1中修复它们。”

所以,我的问题是(〜/ rel1是主干的当前未经修改的工作副本.RevM,RevN是branch1中的修订号,用于我想要合并回主干的一系列修订版本):

如果我做了

cd ~/rel1
svn merge -r RevM:RevN ^/branch1 

它会如何影响从分支到后备箱的后期svn merge --reintegrate?请记住,RevM之前的branch1中有修订版,RevN之后会有更多修订版。特别是,当我最终重新整合时,是否我最初在rel1中完成了修复并将它们合并到rel2中,这应该是首先应该做的?

1 个答案:

答案 0 :(得分:6)

樱桃采摘从树枝到树干的变化总是在扭曲我的思绪。这是一个适用于您的情况的解决方案,其诀窍是阻止樱桃选择的更改再次合并到分支中。

cd ~/rel1
svn merge -r RevM:RevN ^/branch1
svn commit -m "cherry pick RevM:RevN from branch1 into rel1"

现在假设此提交已创建RevX。进入您的分支并使用--record-only选项阻止此修订版从未来的合并操作。

cd ../branch1
svn merge -c RevX --record-only ^/rel1
svn commit -m "mark RevX as already merged to block it from future merge actions"

现在,您应该可以像往常一样再次将rel1的更改合并到branch1,并在完成后将您的分支重新整合到rel1中。

相关问题