0

我们使用SVN 1.6 我们喜欢在分支之间执行代码合并,我们处于两难境地。SVN代码在多个分支之间合并问题

分公司A存在
民间上从分支创建的分支甲
科乙修改代码甲
民间上两个分支修改代码A和B
科同步码合并到科乙
经过一段时间
从分支A创建的分支C
分支A继续同步代码合并到分支B(短时间)
在分支C上进行代码更改的人员 个民间停止在分支A码的改变和分支“冻结”,没有更多的CI
人制作的分支B码变化
支路C同步码合并到科乙
民间上分行B和C
后修改代码一些长的一段时间

现在的困境:我们要合并科B到C路

由于科B是A分支而不是分支C,我们不能申请 - 重新合并从B到C的代码合并选项,因为它们不共享共同的祖先

什么是合并风险最小的方式(没有--reintegrate选项)以防止“ (C中B)的双重合并/重复代码“分支C?

+0

你能使用“合并一个版本范围”。乌龟提供了这样的选择,但我不确定SVN 1.6是否可以解决这个问题。 – Micha

回答

0

通过简单的绘图可视化您的分支结构。我对你的问题的理解是:

   C ---- C ---- C ----- C 
      /  \  \ 
A --- A ---- A --- A \  \  ??? 
\  \  \  \ \  \ 
    B --- B ---- B --- B -- B ---- B ---- B 

我会A.整合C和B如果这不是你能做到这一点的3个步骤/ 3系列步骤的选择:

  1. 全部合并在B中完成的更改为C,但不包含从A合并的更改。直到您达到从A到B的最后一个合并(不在C中)
  2. 将此合并从A合并到B也合并到C
  3. 合并在B上进行的其余更改(在最后一次从A合并之后),但省略了包括在内的更改m C

我不完全清楚你的结构。如果这将是

   C ---- C ---- C ----- C 
      /  \  \ 
A --- A ---- A --- A \  \  ??? 
\  \   \ \  \ 
    B --- B ---- B --- B -- B ---- B ---- B 

我会采取从A直接最后变成C.

+0

嗨BHF,谢谢你的回应。您的图表在我的文字说明中看起来正确。因此,从您的解决方案中,不使用--reintegrate选项,我们应该根据以上3个步骤中的1个合并rev数字;这是我们的正确理解吗? – chz

+0

您可以按照[合并一系列修订](http://svnbook.red-bean.com/en/1.6/svn.branchmerge.advanced.html#svn.branchmerge。advanced.advancedsyntax)或者[单选](http://svnbook.red-bean.com/en/1.6/svn.branchmerge.advanced.html#svn.branchmerge.cherrypicking)更改个别变更集。如果您在开始步骤2之前执行步骤1,则可以降低两次做事的风险。只需尝试一下,如果出错,请恢复您的工作副本并重新开始。祝你好运。 – BHF