我知道在Subversion (SVN) 1.6中有一个--reintegrate
选项,可以将一个功能分支合并回主干。
我的工作流程有点复杂:
我们有特性分支——我们经常合并主干到它们。但我们不会马上把它们放回后备箱。相反,我们在主干上创建一个发布分支,并合并功能分支到发布分支。在这一点上,我们得到了很多的树冲突(因为许多变化存在于特性分支和主干)。
选项--reintegrate
在这种情况下必须有帮助,但看起来--reintegrate
在合并到分支而不是主干时不起作用。这是真的吗?
对于我来说,除了trunk
之外,你不能在任何分支上使用--reintegrate
选项。Subversion在命名或分支的位置上没有任何标准,所以trunk
不可能是特殊的。对于Subversion, branches
、trunk
和tags
仅仅是目录。这些目录对我们来说是特别的,因为我们这么说。
--reintegrate
选项与以下事实有关:如果我从分支A合并到分支B,然后尝试从分支B合并回分支A,我可能试图将最初在分支A中的内容合并回分支A。--reintegrate
选项让Subversion知道我正在逆转合并的方向,并且不考虑分支B中的东西,这些东西实际上是从分支A合并的结果。
重新整合是任何跟踪合并变更的版本控制系统中的一个问题。在任何情况下,--reintegrate
都没有理由必须涉及一个名为trunk
的分支。否则,就没有真正需要这个选项了。Subversion所要做的就是看到你正在合并到一个名为trunk
的分支中,并意识到这可能是一个重新整合。