Git 发布分支策略

Git 发布分支策略,git,tfs,version-control,release,release-management,Git,Tfs,Version Control,Release,Release Management,我们的应用程序是一种基于规则引擎的应用程序,它使用Drools。它具有核心框架逻辑,特定于客户的业务逻辑将作为规则部署 特定版本将包含多个特性。例如,Feature\u Branch\u Toyota\u 1.0、Feature\u Branch\u Honda\u 1.0等将在同一版本中发布Rel\u 1.0,并通过QA测试。由于时间限制或变更的复杂性,最后一分钟的业务部门没有时间对功能\分支\本田\ 1.0变更进行UAT(用户验收测试) 现在,业务部门希望推迟到下个月发布的Feature\u

我们的应用程序是一种基于规则引擎的应用程序,它使用Drools。它具有核心框架逻辑,特定于客户的业务逻辑将作为规则部署

特定版本将包含多个特性。例如,Feature\u Branch\u Toyota\u 1.0Feature\u Branch\u Honda\u 1.0等将在同一版本中发布Rel\u 1.0,并通过QA测试。由于时间限制或变更的复杂性,最后一分钟的业务部门没有时间对功能\分支\本田\ 1.0变更进行UAT(用户验收测试)

现在,业务部门希望推迟到下个月发布的Feature\u Branch\u Honda\u 1.0更改,但仍然Feature\u Branch\u Toyota\u 1.0更改应按计划在Rel\u 1.0中进行

如果我们从Rel\u 1.0中删除功能\u Branch\u Honda\u 1.0更改,则QA将要求进行回归测试,这将影响实际发布计划。有没有办法避免这种情况?或者是否有任何模式将每个特性作为同一发布分支中的独立组件,以便在任何特性被推迟到下一版本时,不会影响当前版本中的其他特性


建议/建议将不胜感激。

似乎QA完全有权要求回归测试

原装:本田1.0+丰田1.0==>Rel 1.0 现在:丰田1.0==>rel1.0

QA现在需要确保丰田1.0没有任何不恰当地依赖本田1.0的情况,这似乎有可能导致一些比预期更紧密的耦合导致某些相互依赖性。所以肯定需要进行某种测试。本田1.0发布后,丰田1.1发布,他们也需要在那里进行回归测试

管理这样的事情会变成一场噩梦,因为基本上您需要应用程序中所有模块的支持组合矩阵,每个模块都需要某种程度的回归/QA测试。这是一只熊,在那里,在那里失败了


从版本控制的角度来看,我建议为每个模块提供独立的存储库,这样每个模块都可以在任何其他模块的独立点上进行分支/标记/等等。然后,是您的兼容性矩阵将所有内容组合在一起。

QA似乎完全有权要求进行回归测试

原装:本田1.0+丰田1.0==>Rel 1.0 现在:丰田1.0==>rel1.0

QA现在需要确保丰田1.0没有任何不恰当地依赖本田1.0的情况,这似乎有可能导致一些比预期更紧密的耦合导致某些相互依赖性。所以肯定需要进行某种测试。本田1.0发布后,丰田1.1发布,他们也需要在那里进行回归测试

管理这样的事情会变成一场噩梦,因为基本上您需要应用程序中所有模块的支持组合矩阵,每个模块都需要某种程度的回归/QA测试。这是一只熊,在那里,在那里失败了

从版本控制的角度来看,我建议为每个模块提供独立的存储库,这样每个模块都可以在任何其他模块的独立点上进行分支/标记/等等。然后是您的兼容性矩阵将所有这些整合在一起