【问题标题】:Merging from branch to trunk with 'Merge range of revisions'使用“合并修订范围”从分支合并到主干
【发布时间】:2009-06-13 19:34:13
【问题描述】:

我已经像这样在 Subversion/TortoiseSVN 中合并了几次:

方法一:

  • 1) 我更改了主干并提交。

  • 2) 我在分支中进行了其他更改并提交。

  • 3) 在主干的工作副本中: 我使用 TortoiseSVN 从分支合并 '合并一系列修订'。

  • 4) 然后我提交主干并删除分支。

然而, TortoiseSVN-manual 推荐以下而不是 3) 和 4):

方法B:

  • 3*) 在分支的工作副本中: 使用 TortoiseSVN 的“合并一系列修订”合并主干中的更改。

  • 4*) 提交分支,包括主干更改。

  • 5*) 在主干的工作副本中: 使用 TortoiseSVN 的“重新集成分支”合并分支中的更改。

  • 6*) 提交主干并删除分支。

我发现 A 容易多了,但我还没有找到不应该那样做的理由。

方法 B 或 A 的参数是什么, 什么时候从一个分支合并回主干?

【问题讨论】:

  • 刚刚更新了我的回答以回复您的评论。

标签: svn merge branch trunk


【解决方案1】:

在合并回之前调用“rebaseing”:在将本地分支合并回主干之前,您使用主干演变“重新设置”(或更新)本地分支。

它允许在您的“分支”内缓慢解决合并,并可能进行中间提交。
然后,当一切都完成后,你可以做一个简单的合并回到主干。
这样,您不必仅仅因为您在主干上合并而延迟提交(因为在主干上应该只允许稳定的提交)。

您认为使用方法“A”有害吗?

不,如果合并是微不足道的,但结果可预测。在这种情况下,方法 B 将浪费时间,不需要额外的合并(并且您应该始终寻求尽可能少的合并:这些操作中的每一个都可能容易出错)

但如果事先没有很好地定义结果,那么绝对推荐方法“B”,并允许您在影响“主干”之前在自己的分支中探索合并的结果。

这两种方法都是有用的,不应该只使用一种或只使用另一种,而应该是最适合当前情况的一种。

【讨论】:

  • 感谢您的回答。您认为使用方法“A”有害吗?
【解决方案2】:

关于合并修订范围重新集成分支

遵循方法 B 导致在分支中有两种提交:

  1. 分支独有的变化
  2. 通过连续合并修订范围从主干中挑选主干更改

合并回主干时,您必须只选择分支独有的更改。这是通过重新整合一个分支来完成的。

在最后使用 合并范围的修订 会给主干带来重复的主干更改和私有分支更改的混合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2011-11-25
    • 2018-11-08
    相关资源
    最近更新 更多