我想说您在描述的场景中需要采取的步骤 100% 取决于您设置的开发环境和工具。
使用 Perforce 进行源代码版本控制,我们建立了一个分支系统,其中发布与开发工作是分开的,所有开发分支都源自一个“接受”分支。每个分支用于单个问题,或用于一组非常密切相关的问题。在将更改集成到验收分支之前,不能在分支中处理其他问题。
是的,这确实意味着我们有很多分支机构。是的,我们做了很多同步(接受到工作分支)和集成(工作分支到接受)。但是,当涉及到轻松地从一项任务切换到另一项任务、回到测试构建、发现两个相互咬的问题等时,它的价值是不可估量的。
在开发完成后(包括他们自己的测试),QA 团队会测试一个问题。首先在自己的分支中隔离。之后将其集成到验收分支中,并进行回归测试以发现任何相互影响的独立问题的问题。当发布的所有问题都因此被集成到验收中时,QA 团队将执行完整的回归和新功能测试。
因此,验收分支始终是应用程序开发的“最新”状态。
在此设置中,您描述的场景将如下所示:
保留我当前的任务,可能检查任何未完成的更改,以免在我的计算机崩溃时丢失它们。如果这意味着破坏该分支的每日构建,我不会签入,除非很容易修复编译错误。(请注意,我们的应用程序套件中有许多应用程序,虽然我的更改可能会在我正在开发的应用程序中编译,但它们仍可能会破坏我们套件中其他应用程序的编译)我们的规则是:每次提交都可能破坏功能,但是不得破坏构建过程。
找到一个“空”分支——当前没有用于任何开发工作的分支,或者,如果所有分支都被占用,则创建一个新分支。
强制同步接受分支和选定的工作分支,这样我的机器就可以保证两个分支的最新状态。
将验收分支的最新状态同步(必要时强制)到工作分支,所以选中的工作分支与验收分支相同。
在 IDE 中打开该分支的应用程序套件,调试并解决。提交到工作分支。
告诉 QA 在工作分支中查看它。如果他们对此感到满意,请将更改整合到接受,以便他们可以继续测试。
将 IDE 切换回我之前工作的分支中的应用程序套件上工作。
冲洗并重复。