我在TFS中有一个团队项目,每天都会提交任务。我想独立处理每个任务,然后在测试后将其合并到主线。
目前有一个MAIN分支和DEV分支,它是MAIN的子代。更改在DEV分支中处理,然后在准备好时合并到MAIN中。这是通过“樱桃挑选”合并完成的。我一直在阅读樱桃选择合并很糟糕,你应该尽可能避免它们。
我无法在TFS中进行分支和合并,并且想知道是否有人对如何在TFS中实现此目标提出任何建议,而无需进行樱桃选择合并。
感谢任何帮助。
如果我遗漏了任何关键信息,请发表评论,我将编辑我的帖子。
答案 0 :(得分:3)
我认为这个Codeplex文档将是一个很大的帮助:
http://tfsbranchingguideiii.codeplex.com/
下载包含几个PDF,概述了不同的场景和策略,并针对不同的方法提供了优秀的问答。
您的方案的关键是将所有更改合并到指定版本从Dev到Main。每次将代码检入Dev时运行所有测试(开发人员获取最新的Dev代码,然后在签入之前运行所有测试)。理想情况下,如果在Dev checkin之后Dev开发分支的构建成功,那么合并到Main将是一个好主意。经常从Dev合并到Main,并在每次签入后在Main中运行所有测试。
因此,即使开发人员单独处理特定部分,一旦他们检查Dev分支,他们实际上是在说“此代码已准备好集成”。当从Dev合并到Main时,你不再处理特定的部分 - 你合并了整个辣酱玉米饼馅。如果开发人员需要对进程中代码进行源代码控制,他们应该使用TFS搁置集并等待检查Dev,直到它们“完成”。
答案 1 :(得分:2)
您可能会发现Timpani Software的MergeMagician工具很有趣。它是一个分支管理和自动合并解决方案,适用于TFS(以及Subversion)。您在分支之间创建发布/订阅关系,然后服务器自动化合并。
MM可用于实现Shawn提到的TFS分支指南中讨论的所有模式。
仅供参考,它是一种商业工具。我不知道有任何类似的开源工具可以使用TFS。
在http://www.timpanisoftware.com查看。主页上有一个很好的概述视频。