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

wad*_*des 3 svn branching-and-merging

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

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

如果我做了

cd ~/rel1
svn merge -r RevM:RevN ^/branch1 
Run Code Online (Sandbox Code Playgroud)

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

jan*_*048 6

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

cd ~/rel1
svn merge -r RevM:RevN ^/branch1
svn commit -m "cherry pick RevM:RevN from branch1 into rel1"
Run Code Online (Sandbox Code Playgroud)

现在假设此提交已创建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"
Run Code Online (Sandbox Code Playgroud)

现在,你应该能够从合并进一步的修改rel1,以branch1再次像往常一样,并重返你的支进REL1一旦你用它做.