Git 如Adam Dymitruk所述,修复旧版本工作流中的错误(“每个功能分支”)

Git 如Adam Dymitruk所述,修复旧版本工作流中的错误(“每个功能分支”),git,workflow,release,defects,Git,Workflow,Release,Defects,我一直在读,这一切都很有道理 有一件事我找不到任何讨论,那就是修复旧版本中的bug。在7.0、7.1、7.2、7.3、7.4、7.4.1、7.4.2、7.8、8.2和最新的8.3处用标签描绘“主”分支 特定客户机的生产版本为7.2,发现一个bug,必须修复 客户不接受在8.3.1中对其进行修复,并将客户从7.2移动到8.3.1 那么,有推荐的工作流程吗 我可以从7.2标签创建主分支的分支,将此分支称为release-7.2.x,然后像对待主分支一样对待“release-7.2.x”——从基线创建

我一直在读,这一切都很有道理

有一件事我找不到任何讨论,那就是修复旧版本中的bug。在7.0、7.1、7.2、7.3、7.4、7.4.1、7.4.2、7.8、8.2和最新的8.3处用标签描绘“主”分支

特定客户机的生产版本为7.2,发现一个bug,必须修复

客户不接受在8.3.1中对其进行修复,并将客户从7.2移动到8.3.1

那么,有推荐的工作流程吗

我可以从7.2标签创建主分支的分支,将此分支称为release-7.2.x,然后像对待主分支一样对待“release-7.2.x”——从基线创建一个功能分支(72bug),修复bug,等等,最终将功能分支合并到“release-7.2.x”,进行构建,制作一个7.2.1标签,并将其投入生产然后,7.2.x版将永远存在,就像主版本一样,因此,7.2.x版可以对7.2.x版进行更多的修复

当然,对于当前的工作,我们不希望丢失7.2中的补丁,因此可以从当前主基线(8.3)创建一个功能分支,并将bug分支(72bug)合并到这个功能分支中。此功能分支将被视为当前发布周期/冲刺的任何其他功能。因此,在周期结束时,最新的基线(8.4)将包含bug修复


其他使用Adam工作流的人是如何解决这种情况的

如果无法将客户机迁移到当前版本,那么就无法从7.2标签开始新的分支


但是,我建议在当前功能分支上修复缺陷,然后使用
git cherry pick
将修复向后移植到7.2.x版本分支,而不是在72bug分支上修复缺陷并将其合并到7.2.x版本分支和当前功能分支中。这将有助于保持您的历史记录的整洁,这样您当前的开发就不会因为一个客户的需要而突然依赖旧版本。

太好了,谢谢!遗憾的是,我们发现客户机通常有限制从旧版本迁移到新版本的策略,或者限制每个日历年的升级次数。所以,我们必须接受这一点,不管喜欢与否:-)再次感谢。