我的团队正在为已经投入生产的产品维护和添加功能。我们正试图弄清楚如何改进我们的部署策略,以便我们可以开始一次部署一个功能而不是大块功能。理想情况下,当一个功能通过质量保证和业务验收时,我们希望将该功能部署到生产中(在任何时候)。
我们已经遵循“每个功能分支”的概念。现在,我们正在开发分支机构创建新的功能分支。当我们完成一个功能时,我们会向dev分支创建一个pull-request。该拉取请求看起来很棒...它只有与该功能相关的更改。在代码审查之后,分支被合并到dev master(并部署到dev)并且QA看一看。一旦QA批准该功能,我们将原始功能分支合并到分段分支(并部署到分段)。业务接受新功能后,原始功能分支将合并到生产中。我们的问题是原始功能分支似乎在它进入生产时滚雪球,其中许多更改似乎与功能分支无关。最后,我们已经部署了许多未经质量保证或业务接受的产品。
答案 0 :(得分:0)
答案 1 :(得分:0)
正确执行每个功能的分支。不知何故,整个Linux内核似乎都很好地采用了这种策略。它也适用于微观层面。