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模型,你应该(不断地)

  1. release/v.1.0.1合并到develop分支中,
  2. 合并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模型来写这封信,

  1. 你不应该有两个或更多共存的发布分支,而且
  2. 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成为)。

Interesting Posts