如何将bug修复分支合并到trunk和release分支

Mar*_*arc 2 svn tortoisesvn merge branch

考虑以下情况:

  • 开发主要在干线进行.
  • 在修复复杂错误或开发新的(最初不稳定)功能时使用分支.
    通常,一旦开发完成,这些分支就会合并到主干中.
  • 1个分支用作当前发布分支(例如当前"R-1.0").
  • 标签用于发布(将是"R-1.0.0").

现在必须修复主干以及当前版本1.0.0中的复杂错误:

  1. 将创建来自主干的分支"BG-1".
  2. 该错误将在此分支中修复.
    同时发展将继续在后备箱.

你现在如何继续将分支重新整合到主干和"R-1.0"中?

  • 将主干合并到"BG1",然后将"BG1"重新集成到主干中,然后重新集成到"R-1.0"中.
    =>这不是解决方案,因为这种方式"R-1.0"会收到自1.0版以来在主干中开发的所有东西,这不是目标.
  • 尝试将"BG1"重新集成到主干中,然后重新集成到"R-1.0"而不合并主干.
    =>这也无法工作,因为其他不属于1.0版的更改已经是"BG1"分支的一部分.

有没有解决这个问题的方法?
我看到的唯一解决方案是首先从"R-1.0"开始"BG1"而不是主干.如果是这样,这是否意味着对于每个错误修复分支,开发人员必须找到包含此发布分支中的错误和分支的最早的受支持版本?

更新:
在主干中进行所有开发的做法源自"Jim T"的答案,这是我非常喜欢的概念.

Jos*_*ine 6

我建议将后备箱合并到BG1,然后将BG1重新集成到后备箱.然后,您可以将一系列修订合并到R-1.0.您将BG1重新集成到主干的提交应该只包含错误修正,因此您可以将其合并到R-1.0.或者您可以将特定提交合并到BG1以修复您的错误.

根据自R-1.0以来中继线的更改量,您可能需要手动编辑R-1.0,然后才能将更改应用于旧代码.这就是维护旧版本的本质.