svn:在trunk之外的分支之间合并

时间:2011-07-06 17:38:58

标签: svn branching-and-merging

我们有一个SVN项目,我工作的分支B,以及同事工作的分支C. (他主要在一个代码领域工作,我主要在另一个领域工作)

如果我们希望在与主干进行任何合并之前保持同步,他和我应该如何合并?

我们在合并内容方面没有任何问题,但内容(特别是svn:mergeinfo,由于显而易见的原因)不断显示树冲突并且总是给我们带来麻烦。

我们该怎么做?

1 个答案:

答案 0 :(得分:2)

如果你们都可以在同一个分支中工作,那么考虑对一个分支进行所有更改的无基本合并,并放弃另一个分支。如果你的分支中有其他必须保持分离的更改,那么请小心选择仅仅应该根据单个分支进行无基础的更改,然后在源分支中恢复这些更改。

结构(供参考):

  • 中继线
    • 分行A
    • 分行B

流程类似于以下内容:

  1. FI (转发积分)Trunk给两个孩子。 (将中继线合并为分支 A ,然后将中继线合并为分支 B )。
  2. 无根合并 B A
  3. 放弃 B (至少锁定以防止意外使用退役分支)。
  4. FI 再次中继 A (重新建立合并关系,并在引入进一步更改之前消除任何合并冲突。
  5. 您和其他开发人员都会继续在分支 A 中开发,直到稳定。
  6. FI 中继到 A (从其他开发者或其他主干活动中获取最新更改)
  7. 在A中快速构建并运行烟雾测试(确认FI成功且A仍然稳定)
    1. 如果在烟雾测试期间发生更多干线变化,则重复6& 7或可能锁定行李箱,直到步骤6 - 8完成。
  8. RI(反向整合)A到中继
  9. IDEA :如果可能,请避免将来在子分支之间共享不稳定的更改。与标准的完全父子合并相比,无基础合并和挑选更改都是风险较高的操作。一个应用是使用公共开发分支,然后仅在需要时按功能分支。所有开发人员都使用公共dev分支进行更改。当破坏变更需要多个开发人员构建和稳定创建功能分支时。一旦稳定整合回Dev分支并退出功能分支。