TFS:分支、标签还是搁置?

Posted

技术标签:

【中文标题】TFS:分支、标签还是搁置?【英文标题】:TFS: Branch, label or shelve? 【发布时间】:2011-07-15 01:26:44 【问题描述】:

我对 TFS 很陌生,但我对 VSS 有一些经验。我想知道您对在以下情况下使用 TFS 的最佳方式的看法: 我们是一群致力于项目的开发人员。所有项目都从一个共同的基础代码开始。所有项目都只有一个人,在项目完成之前没有代码共享。一个项目可以持续几个小时到几个月,在完成之前不会合并任何代码。任何开发人员同时在多个项目上工作,通常一次有 7-10 个项目。通常项目只涉及少量更改/创建的文件 (10-20),但依赖于大量经常更改的基础设施文件。但是,在合并之前不会考虑基础架构的任何更改,因此在最终构建之前我们不会从服务器获取最新版本。

另一个要求是,在合并时,我们希望使用 3 路合并工具。我们通过定制的应用程序在 VSS 中使用这种方法,并且效果很好。但是,这涉及到特殊的文件管理,例如每个必须更改的文件都必须在某个地方保存一个原始版本,该版本将用作 3 路合并过程的“根”文件。

你怎么看?

【问题讨论】:

你能提供更多信息吗?有多少开发者?你多久发布一次代码?应用程序是否有单独的开发周期?您是否需要将错误修复与新功能分开(如果您不这样做,更改它会很痛苦吗?)。仅供参考,这里是一些关于使用 3rd party merge tool 的信息的链接,我喜欢 source gear diffmerge,因为它支持 3 路合并并且是免费的(如啤酒),但还有很多其他选项 【参考方案1】:

你应该看看Visual Studio TFS Branching Guide 2010。 (direct download)。在该软件包中,有一个 PowerPoint 演示文稿,可引导您了解一系列可能的分支结构。

听起来您想要“按项目进行分支”或“按开发人员进行分支”(因为每个项目只有一个开发人员,所以它们实际上是相同的)。

关于 3 路合并工具,请查看此列表以查看 how to configure your favorite diff/merge tools。

【讨论】:

以上是关于TFS:分支、标签还是搁置?的主要内容,如果未能解决你的问题,请参考以下文章

代码审查工作流程+ TFS中的功能分支

转摘TFS上分支和标签的用法

取消搁置到另一个分支

Git 的工作流程

TFS:在两个分支之间合并 .csproj 文件,两个分支之间有项目引用

Git-Tfs 在分支上缺少历史记录