SVN代码在多个分支问题之间合并

时间:2013-10-25 09:09:57

标签: svn version-control merge svn-reintegrate svn-merge-reintegrate

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

  

分支A存在
  人们在分支A上进行代码更改   分支B由分支A创建   人们在分支A和B上进行代码更改   分支合并到分支B的同步代码   过了一段时间   分支C由分支A创建   分支A继续同步代码合并到分支B(短时间)
  人们在分支C上进行代码更改   人们停止分支A上的代码更改和分支“冻结”,不再有ci
  人们在分支B上进行代码更改   分支C同步代码合并到分支B
  人们在分支B和C上进行代码更改   经过一段很长的时间

     
    

现在进退两难:我们希望将分支B合并到分支C

  

因为分支B来自分支A而不是分支C,所以我们无法对从B到C的代码合并应用--reintegrate选项,因为它们不共享共同的祖先

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

1 个答案:

答案 0 :(得分:0)

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

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

我会将C和B集成到A中。如果这不是一个选项,你可以通过3个步骤/ 3个系列步骤来完成:

  1. 将B中完成的所有更改合并到C中,但不包括从A合并的那些更改。直到达到从A到B的最后一次合并(不在C中)
  2. 将最后一次合并从A到B合并到C
  3. 合并在B上进行的其余更改(在A上次合并之后),但忽略C中包含的更改
  4. 我对你的结构并不完全清楚。如果是

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

    我会将A的最后一项更改直接转换为C.