如何在SVN中执行合并

How should merges be performed in SVN

我对SVN合并过程有疑问。

我在branch1中进行了一些文件修改,我想将这些更改合并到branch2,branch3和trunk中。

应该从branch1-> branch2然后是branch2-> branch3,最后是branch3-> trunk吗?

应该从branch1->(branch2,branch3和trunk)完成合并吗?


当您合并SVN中的两个(任意)节点(以及其他(可能不是全部)/ SCM)时,在大多数情况下,目标将从历史的分歧点开始从源头获取所有更改

因此,如果只想填充从branch1到其他节点的更改,则可以

  • 对具有相同源的N个目标执行" complete "合并(读取svn help merge,第一种形式)N次-分支1(在检查历史记录的方式中,大多数逻辑和可读性更高)
  • 执行" complete "合并为一个(任何)目标,将此合并集用作其他目标" cherry-pick "合并的源(它将起作用,将给出相同的结果,但似乎是逻辑上的解决方案)

PS-" complete "与可变源合并会导致以下事实:来自中间分支的所有更改都将出现在目标分支中,即

then branch2 -> branch3 and finally branch3 -> trunk

  • branch3将获得branch1 branch2的更改
  • 中继将获得branch1 branch2 branch3更改

而不是为其他开发分支共享来自branch1的更改