【问题标题】:How t reintegarte branch of branch in svn如何在svn中重新整合分支的分支
【发布时间】:2013-03-12 03:45:58
【问题描述】:

我正在使用 SVN。我有一个从另一个分支创建的分支,该分支又从主干创建。现在将我的分支重新集成到主干的正确程序是什么?

- - - - - - - - - - - - - - - - - - - - - - 树干 \ \________________________ 分公司 1 \ \____________ 我的分行

【问题讨论】:

    标签: svn merge svn-reintegrate


    【解决方案1】:

    MybranchBranch1 都使用相同的重新集成方法:标准。分支起点不重要

    【讨论】:

    • Branch1 在创建之后和 MyBranch 创建之前所做的更改?
    • @DiegoF.Durán - 显然是的,MyBranch 在起点已经包含了 Branch1 的所有更改(分支 = 数据副本)
    • 合并应用更改,而不是现有代码。如果您将 MyBranch 合并到 Branch1,并且 MyBranch 中的任何更改依赖于在创建 MyBranch 之前存在于 Branch1 中的更改,那么您将遇到问题,可能不是冲突问题,而是逻辑问题。
    【解决方案2】:

    将 MyBranch 重新合并到 Branch1,然后将 Branch1 重新合并回主干,或者将 MyBranch 重新合并到 Branch1,然后将 Branch1 重新合并到主干。我不是 --reintegrate 的粉丝,我更喜欢手动合并正确的修订。

    ----(1)-------------------------------------- trunk    \
         \(2)_____(3)______________ Branch1
                   \
                    \(4)__________(5) MyBranch
    

    或者,如果你想走硬路线:从 Branch1 合并到主干,从创建 Branch1 到创建 MyBranch 的 Branch1 的修订,然后将 MyBranch 合并到主干。

    如果您知道 (4) 和 (5) 之间没有变化,这取决于 (2) 和 (3) 之间的变化,您可以直接将 MyBranch 合并到主干。

    【讨论】:

    • 为什么要通过改动污染Branch1,分离成特殊的分支?!
    • 在 (4) 和 (5) 之间所做的更改可能在逻辑上取决于 (2) 或 (3) 之间所做的更改。我在上面解释过。如果变更集之间没有功能依赖关系,那么您的解决方案是正确的 :)
    • 当我合并到主干 MyBranch 时,all 更改 来自两个头的共同父级 - 因此包括来自 (1) 分支点的所有更改.你想看样品吗?
    • 拜托,我想看一个示例,因为 Subversion 不适用于快照,而是使用变更集,如果您在主干的工作副本上执行 svn merge -r4:5 MyBranch,那么您正在这样做,合并该修订范围。
    猜你喜欢
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    相关资源
    最近更新 更多