3

我在 TFS 中有一个团队项目,每天都会提交任务。我想独立完成每个任务,然后在测试后将其合并到主线中。

目前有一个 MAIN 分支和一个 DEV 分支,它是 MAIN 的子分支。更改在 DEV 分支中进行,然后在准备好时合并到 MAIN 中。这是通过“cherry-pick”合并完成的。我到处都在读到樱桃选择合并是不好的,你应该尽可能避免它们。

我在 TFS 中的分支和合并方面遇到了麻烦,想知道是否有人对如何在 TFS 中实现这一目标有任何建议,而无需进行樱桃选择合并。

任何帮助表示赞赏。

如果我遗漏了任何关键信息,请发表评论,我将编辑我的帖子。

4

2 回答 2

3

我认为这个 Codeplex 文档将是一个很大的帮助:

http://tfsbranchingguideiii.codeplex.com/

下载有几个 PDF,概述了不同的场景和策略,并就不同的方法提供了出色的问答。

您的方案的关键是将所有更改合并到从 Dev 到 Main的指定版本。每次将代码签入 Dev 时运行所有测试(开发人员获取最新的 Dev 代码,然后在签入前运行所有测试)。理想情况下,如果在 Dev 签入后 Dev 分支中的构建成功,则合并到 Main 将是一个好主意。经常从 Dev 合并到 Main,并在每次签入后运行 Main 中的所有测试。

因此,即使开发人员单独处理特定的部分,一旦他们检查到 Dev 分支,他们实际上是在说“此代码已准备好集成”。当从 Dev 合并到 Main 时,您不再处理特​​定的部分——您合并了整个 enchilada。如果开发人员需要对在制品代码进行源代码控制,他们应该使用 TFS 搁置集并等待签入 Dev,直到“完成”。

于 2011-04-19T15:25:39.607 回答
2

您可能会发现 Timpani Software 的 MergeMagician 工具很有趣。它是与 TFS(以及 Subversion)一起使用的分支管理和自动合并解决方案。您在分支之间创建发布/订阅关系,然后服务器自动进行合并。

MM 可用于实现 Shawn 提到的 TFS 分支指南中讨论的所有模式。

仅供参考,这是一个商业工具。我不知道有任何开源工具可以与 TFS 一起做类似的事情。

http://www.timpanisoftware.com上查看。主页上有一个很好的概述视频。

于 2011-09-16T06:02:54.573 回答