Clone/branch 修复错误并合并 Mercurial 中的多个版本

Clone/branch for bug fix and merge through multiple versions in Mercurial

我想用 Mercurial 实现以下工作流程:

在默认分支中开发 7.4 版

在 7.1 中发现错误(7.2 使用不同的数据库布局,所以我想根据 7.1 快速修复错误),分支或克隆到错误修复。

发布 7.1.1

现在我的问题是我想将错误修复更改合并到 7.2 中,直到当前开发 (7.4)。我只找到了与当前合并的方法,但是 7.2 和 7.3 没有 7.1.1 修复。 我应该如何设置我的存储库?

一个选项,使用hg graft。像合并一样工作,但会保持分支打开。

典型的布局是这样的,您拥有开发新功能的默认分支。

您可以从该默认分支定期分支出各个主要版本分支(因此在您的情况下是 7.1、7.2、7.3...)。

如果您现在遇到错误,您会在存在错误的最旧版本中修复它,因此影响 7.1.x 版本的错误已在 7.1 分支中得到修复。然后将 7.1 分支合并到它也需要修复的每个其他分支中,因此可能是 7.2、7.3、7.4 和默认(=开发)分支。由于所有分支的基础都比最旧的分支更新(并且您已将其固定在那里),因此不会合并任何旧内容(您的合并工具应该可以识别)。

如果您不想合并,可以使用 graft 将修复简单地复制到其他分支。