如何在svn中正确分支后提交并恢复中继?

Dan*_*nor 9 svn branch

我有一些提交,我已经决定,事实上,将是更多的分支工作,然后干线工作.我如何创建分支并恢复主干,同时仍然确保合并后来不痛苦?

是否像将当前中继线复制到分支并恢复中继一样简单?或者这会在以后产生麻烦吗?

Sam*_*ler 18

我认为飞利浦方法将类似于以下内容,假设最后一次"良好"修订为100,而您现在为130,则创建新分支:

svn copy -r100 svn://repos/trunk svn://repos/branches/newbranch
svn merge -r 100:130 svn://repos/trunk svn://repos/branches/newbranch
Run Code Online (Sandbox Code Playgroud)

请注意,这个想法是保留在这些修订中所做的更改,以便您可以将它们应用回主干.

要还原主干:

svn merge -r130:100 .
svn ci -m 'reverting to r100 (undoing changes in r100-130)' . 
Run Code Online (Sandbox Code Playgroud)

(您执行这些操作的顺序无关紧要,因此您可以在创建分支之前恢复主干.)

然后你可以切换到你在repo中创建的新分支:

svn switch svn://repos/branches/newbranch workdir
Run Code Online (Sandbox Code Playgroud)

  • 这是一个很好的解决方案.我遇到了类似的问题.只有这里没有提到的是合并必须在工作副本上完成,所以你需要检查'newbranch'. (2认同)
  • 当你重新整合这些变化时呢?在重新集成它们之前,你必须确保分支是最新的主干,所以你必须合并trunk - > newbranch,这反过来又合并在反向合并中(`svn merge -r 100 :130 svn:// repos/trunk svn:// repos/branches/newbranch`)基本上从**newbranch**中删除你想要的更改(**100:130**). (2认同)