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