在并行开发中处理多个同时功能的正确方法是什么?

时间:2016-04-06 18:10:52

标签: git workflow git-flow

我们一直在使用git-flow进行开发,包括集成,QA和实时环境。它不适用于我们 - 我们经常在不同的团队并行开发中具有多个功能,并且经常发现某些功能已经准备就绪,而其他功能已经合并到开发分支但是还没有#39尚未进行充分的集成测试。然后,我们最终坚持发布,直到管道中的所有功能都经过测试并且冻结开发持续时间,这对于正在开发新功能的开发人员来说是一个不便。有些人建议只使用一个分支并使用功能标志进行开发,但这会带来一系列挑战。

是否有一种很好的方式将提交捆绑在一起,以便它们可以作为一个组进行转发?我们在单独的分支上具有每个功能,但是当功能分支合并回开发时,该分组将丢失。我认为这将有助于保持分支完好无损,然后在测试该功能并准备好上线时将其合并为主,但这似乎并不容易。

我们也愿意转向不同的源控制系统,如果有其它方法可以使这更容易,但我们最终的任何系统也必须支持基于自动化测试成功或失败的选择性合并(我们现在使用jenkins。)

解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

  

有些人建议只使用一个分支并使用功能标志进行开发

你一定应该听听这些人的意见。根据我的经验,这是在任何更大的项目中集成软件的最佳方式。

它不仅可以使您的发布计划更容易,还可以实现各种其他好处,例如:

  • 它将允许您的开发人员集成早期和经常甚至未完成的代码。这将降低开发分支之间的集成风险。并在功能之间提供更好的可见性/同步。
  • 它将为早期整合您的更改创造积极的竞争,因为这是避免合并冲突的方法。
  • 如果您只有一个分支,则可以将所有测试工作集中在此分支上。

推荐阅读:Martin Fowler about Feature branches