Version control 如何通过集成测试进行版本控制?

Version control 如何通过集成测试进行版本控制?,version-control,Version Control,我正在从事一个项目,我正在做集成/软件测试 最初我们在开发的同一个分支上工作,但问题是开发分支正在快速创建新特性。创建集成代码变得很困难,因为分支不稳定。我们在这个分支中有一个回归,检查旧的特性是否正常工作,但是我们发现我们需要一些喘息的空间,以便我们可以创建一些初始测试代码 我们的想法是创建一个分支(因此是开发的开发人员,也是我们的舞台),这样我们就有了稳定的代码。一旦我们觉得我们的测试代码是稳定的,我们就可以将DEV合并到我们的STAGE中,然后看看有什么中断。如果一切正常,我们可以将测试代

我正在从事一个项目,我正在做集成/软件测试

最初我们在开发的同一个分支上工作,但问题是开发分支正在快速创建新特性。创建集成代码变得很困难,因为分支不稳定。我们在这个分支中有一个回归,检查旧的特性是否正常工作,但是我们发现我们需要一些喘息的空间,以便我们可以创建一些初始测试代码

我们的想法是创建一个分支(因此是开发的开发人员,也是我们的舞台),这样我们就有了稳定的代码。一旦我们觉得我们的测试代码是稳定的,我们就可以将DEV合并到我们的STAGE中,然后看看有什么中断。如果一切正常,我们可以将测试代码添加回DEV,这样我们测试的新特性就不会再次中断

问题在于bug修复

当我们创建集成测试代码时,开发团队将继续在开发分支上开发他们的代码。我们很可能会在STAGE分支的代码中发现一个bug。这可能导致两种情况中的一种

  • 该错误是一个有效的错误。在这种情况下,他们可以从检测到bug修复的阶段分支出来,修复bug并将其合并到DEV中

  • 这个bug已经在DEV的某个地方修复了。我遇到的问题是,如果这个bug在DEV中被修复,那么我们必须将从上次合并点到修复这个bug的所有更改合并到STAGE中

  • 这似乎是一个常见的问题,集成团队正在与开发团队合作,而两个团队都不知道如何解决这个问题

    “我遇到的问题是,如果这个bug在DEV中得到修复,那么我们就必须将从上次合并点到修复这个bug时的所有更改合并到STAGE中。”

    为什么??任何像样的源代码控制系统都应该允许您挑选更改。根据所做的更改,您可能需要进行大量手动合并,但这当然是可能的

    另一个可能的解决方案是冻结开发分支,直到向其提交阶段的修复程序。

    我遇到的问题是,如果此错误在开发中修复,那么我们必须将从上次合并点到此错误修复时的所有更改合并到阶段中

    为什么??任何像样的源代码控制系统都应该允许您挑选更改。根据所做的更改,您可能需要进行大量手动合并,但这当然是可能的


    另一个可能的解决方案是冻结DEV分支,直到提交STAGE的补丁。

    理论上,可以找到DEV中有补丁的变更集,并将其应用到STAGE。问题是可能很难找到变更集,而且这些变更集中可能还有其他内容。至于冻结DEV,这将给我们的日程安排带来冲击。我们的想法是,在开发团队继续添加更多功能的同时,验证所实现的功能。在这种情况下,您需要将bug修复分支与新功能分支分开。您需要强制执行一个策略,即bug修复以“原子”方式提交,并且除了修复所需的更改外,其他内容都在变更集中。其他变更,即使是很小的变更,也必须单独提交。一旦bug修复分支被验证为稳定的,你的工作就是将bug修复集成到新的特性分支中。理论上,这可以找到在DEV中有修复的变更集并将其应用到STAGE中。问题是可能很难找到变更集,而且这些变更集中可能还有其他内容。至于冻结DEV,这将给我们的日程安排带来冲击。我们的想法是,在开发团队继续添加更多功能的同时,验证所实现的功能。在这种情况下,您需要将bug修复分支与新功能分支分开。您需要强制执行一个策略,即bug修复以“原子”方式提交,并且除了修复所需的更改外,其他内容都在变更集中。其他变更,即使是很小的变更,也必须单独提交。一旦bug修复分支被验证为稳定的,您的工作就是将bug修复集成到新的特性分支中。