【问题标题】:TFS 2010 branching model for an in-house application内部应用程序的 TFS 2010 分支模型
【发布时间】:2012-01-12 07:45:00
【问题描述】:

这不是我没有任何想法的问题,而是我想展示一个模型,看看它是否获得批准,或者任何人都可以看到它的问题或有更好的建议。他们说最好仔细选择分支模型以避免将来的麻烦。

所以我们有一个内部应用程序,只有一个版本(最新)发布给客户,基本上有两种开发活动:主要活动是为下一个版本工作,通常包括新功能和纠正修复它是计划中的,第二个是未计划的,是关于维护的,包括生产中当前版本的修补程序。

经过长期研究,我们决定使用 Main 主干,从中分出 2 个子分支:Development & Maintenance(或修补程序)。正如指南中介绍的那样,每天的开发将发生在 Development 分支中,每当我们为下一个版本准备好功能时,我们都会从该分支进行反向集成 (RI)。在发布之前,反向集成将停止,代码将稳定在 Main 分支中。从 Main 发布后,将有一个从 MainDevelopmentMaintenance 的前向集成 (FI)。

任何修补程序都只会在 Maintenance 中发生,并且取决于修补程序(例如,如果我们想将其保留在代码库中),我们将在 Main 中执行 RI 并从那里进入开发

现在一切看起来都很好,至少在纸面上,所以我想听听其他人对这个模型的看法。

例如,我们还会考虑创建另一个分支 Release,其中代码的稳定发生在发布到生产之前(而不是直接在 Main 中工作)和当然,我们将从这里发布到生产环境并在 Main 中进行 RI,然后在 DevelopmentMaintenance 中进行 FI,但我们不是确定这是否会带来任何好处或只会增加复杂性?

并假设 开发 中的某些功能不会为下一个版本准备好或不需要,这意味着我们将不得不对相关的变更集进行一些“樱桃采摘”到想要的功能,但根据文档,这不是太好。有什么建议吗?

我再次知道这不是一个简单直接的问题,而是一个开放的问题,我仍然希望听到任何有类似经历的人的意见。提前感谢您的关注。

【问题讨论】:

  • @KMoraz:我可以从另一篇文章中得出的结论是选择简单而明智,我喜欢这样。但是,我不确定只有 Dev & Main 对我们来说是否足够。我们需要在版本之间隔离修补程序的工作。感谢您的链接,我能得到的所有阅读内容都有帮助。

标签: tfs branching-strategy


【解决方案1】:

您是否阅读过 TFS ALM Rangers 分支指南文档?您提出的建议看起来很像他们的“标准分支计划”,尽管他们鼓励同时拥有发布和“服务包”分支(很像上面的发布和维护分支)。

http://vsarbranchingguide.codeplex.com/

我已经在一些客户中实施了标准分支计划,并且没有遇到任何问题。如果您计划采用并发的工作流(功能团队等),那么分支指南也有可靠的计划。

要考虑的另一件事可能是阶梯模型,您可以在每个版本中创建新的开发分支并将旧分支冻结为一个版本。这将避免 RI,因为您可以只修复旧的并在必要时修复新的 Dev 分支。我也在这个模型中工作过,非常棒。

【讨论】:

  • 感谢您的回答。我从 codeplex 站点下载了内容,虽然我没有阅读所有内容,跳过了多团队、多功能、并发服务包等。是的,标准分支计划看起来不错,虽然我们并没有真正做服务包(累积修补程序/补丁)所以可能有 Realease 和 Hotfix 分支就足够了。尽管如此,我在任何指南中都找不到与该计划相关的深入解释;比如什么时候做 FI 和 RI,在产品发布之前在哪里稳定代码,发布到哪个分支,在哪里以及在什么时间点。
  • 是的,他们不会给你一切......这就是顾问的目的;)......实际上我认为这是因为这些问题的答案是定性/主观的。以我的经验,答案是“任何对你的团队有用的东西”。过去,我曾在团队中工作,其中 RI 到 Main 仅在您想要分支以发布版本时发生,而其他团队在功能准备好进行 QA 时已经这样做了。一旦您在发布分支中,我总是建议将错误栏提高得相当高。仅限 P1/S1 错误。所有其他的稳定应该在此之前发生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-29
  • 2020-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多