VSTS:分支和合并最佳开发方法 - QA - 生产

VSTS: Branch and Merge Best approach for Development - QA - Production

我正在使用 VSTS 进行源代码管理、CI 和发布管理 我试图只构建一次代码,而不是每个环境或分支。 发布管道是: 开发 -> 质量检查 -> 产品

我只有一个分支或代码库,团队在其中提交更改。 CI 在修复的所有代码都准备就绪时触发构建。我创造 发布并通过管道进行推广,直到将其部署到生产环境中。

我需要知道一个分支是否适合我们,所以如果我们要修复一些错误或创建一个新功能,只需创建一个子分支并将代码每天提交到主分支。

我试图避免使用 3 个分支,每个环境一个。我认为 CI 和发布管理为我们提供了从以前的版本创建发布的能力。

那么,就我而言,这两种方法(3 个分支或只有一个主分支)的优缺点是什么?

你不需要每个环境都有一个分支,但你需要问自己一些关于你的开发过程的问题。

您多久发布一次新功能?您是否有全面的单元测试、集成测试、回归测试和用户验收测试,这些测试是完全自动化的并且在每次签入时 运行?

如果您开发新功能并且您没有一套完整的自动化测试,那么您可能至少需要一个分支。 1 开发新功能,1 支持实时代码库。阅读 ALM Rangers branching guidance 并从那里开始。

通常一个发布流水线应该只有一个分支。您可能在一个管道中有多个环境,但部署到它们的发布应该是相同的,因为发布管道反映了您的软件在构建后最终发布的过程。例如发布先部署到QA环境进行测试,QA环境测试通过后才能部署到生产服务器。 QA 使用一个分支的构建而 Prod 使用另一个分支的构建是没有意义的。详情可以参考这个link:Where to deploy? Environments in Microsoft Release Management.

而对于branch,则是关于你的开发过程。以下是来自 MSDN 的一些建议供您参考:

When should the team add a branch?

You should create branches in the following situations:

  • When you must release code on a different schedule/cycle than the existing branches.

  • When your code requires a different branch policy. If you create a new branch that has the new policy, you can add strategic value to your project.

  • When functionality is released to a customer and your team plans to make changes that do not affect the planned release cycle.

You should not create a branching for each user story because it creates a high integration cost. Although Team Foundation Server makes branching easy, the overhead of managing branches can become significant if you have many branches.

查看此 link 了解详细信息:Branch strategically