1

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

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

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

任何修补程序都只会在Maintenance中发生,并且取决于修补程序(例如,如果我们想将其保留在代码库中),我们将在Main中执行 RI,然后在Development中执行 FI 。

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

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

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

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

4

1 回答 1

4

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

http://vsarbranchingguide.codeplex.com/

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

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

于 2012-01-11T23:45:00.907 回答