Git Flow如何与QA一起testing版本和新function?
我们在我们最新的iOS项目中使用Git Flow,我试图找出一种与QA一起工作的方式,以便他们可以testing最新版本,以及testing新function,而不必担心哪些bug已修复哪个分支。
目前,他们已经在release/v1.0.1
分支上进行了testing,这个分支在原来的release/v1.0
有几个bug。 同时,我一直在为v1.1发行版计划一个新function,但是在release/v1.0.1
的同时从develop
分支中分支出来,因此没有任何bug修复。
今天,QA部门希望将我的新function用于试驾。 但是,如果我从我的分支创build它们,则没有任何重新testing和closures的错误修复程序将在其中。 因此,我将收到大量的抱怨和恐慌,已经重新引入的错误…我想避免的!
那么,让他们testing这个的最好方法是什么? 我可以将release/v1.0.1
合并到我的特性分支中,但是我应该确保在release/v1.0.1
发布前我不会合并到develop
……而且我想在一定程度上会打破Git Flow方法。 我可以为QAtesting创build一个全新的分支,它将我的特性与release/v1.0.1
合并,但是我怎样处理在这个分支上发现的任何错误? QA之后,我在哪里合并?
除此之外,我还要考虑内部版本号和版本号,这样才有意义。 目前,版本号是用于发布的版本号,每个新版本的质量保证都会增加内部版本号。 但是,如果他们从两个独立的分支机构接收build立,我可能会结束编号冲突,这会造成混乱。
处理这些问题的最好方法是什么?
在我的回答中,我会参考nvie.com的Git Flow页面中第一个图的部分内容。 为了完成,我在下面添加了一个截图。
今天,QA部门希望将我的新function用于试驾。 但是,如果我从我的分支创build它们,则没有任何重新testing和closures的错误修复程序将在其中。 因此,我将收到大量的抱怨和恐慌,已经重新引入的错误…我想避免的!
那么,让他们testing这个的最好方法是什么? 我可以将
release/v1.0.1
合并到我的特性分支中,但是我应该确保在release / v1.0.1发布前我不会合并到开发中。
没有; 您不应将发行版分支直接合并到function分支中。 根据Git Flow模型,你应该(不断地)
- 将
release/v.1.0.1
合并到develop
分支中, - 合并
develop
成你的function分支(ES),
以便将release/v.1.0.1
更改稳定到您的function分支(es)中。
(不幸的是,上面的图片并没有显示出不断融合的feature
,但这就是你应该做的。)
我可以为QAtesting创build一个全新的分支,它将我的特性与
release/v1.0.1
合并在一起
那里有一些模糊的地方。 你build议将feature
合并到release/v1.0.1
还是将release/v1.0.1
合并到feature
? 你不应该做前者,因为新特性进入release/v.1.0.1
。 他们将不得不发行一个未来的版本,即v1.0.1
之后 。 阅读左侧的泡沫:
你也不应该做后者。 至less,不是直接的。 如上所述,为了将release/v1.0.1
变更为feature
,您应该先将release/v1.0.1
合并为develop
,然后将develop
合并为feature
; 在feature
准备好被合并回develop
之前,这可以/应该发生多次。
附录
如果你按照Git Flow模型来写这封信,
- 你不应该有两个或更多共存的发布分支,而且
- QA应该只能testing释放(又称稳定 )分支。
因此,如果其他function应该进入v1.1
,您不能要求QA审查您的新function, 您必须等到其他function完成。 一旦v1.1
所有function都已经完成并集成到develop
,请创build一个release/v1.1
分支(源自develop
主pipe); 然后要求QA开始testing/稳定该分支。
另一方面,如果在请求QAtesting自己的新function之前,确实不能等待其他function的完成,则应该创build一个中间发行版本(称为v1.0.2
)告诉QAtestingrelease/v1.0.2
。 一旦稳定到令人满意的程度,就把它合并到master
(并develop
成为)。