我正在为我们的团队(1 到 2 名开发人员)评估版本控制系统,并且想知道 TFS 2012 版本控制与 Mercurial 在合并和分支方面的比较。我们没有一个庞大的团队,可能只有我和另一个开发人员,所以我们可能不需要 DVCS 提供的强大的分支/合并功能。就其功能而言,我无法找到有关 TFS 2012 版本控制的太多信息。任何人都可以指点我指南或突出一些功能吗?请注意,我们只能在 VS 专业版上访问 TFS 2012 的独立版本。
谢谢
我正在为我们的团队(1 到 2 名开发人员)评估版本控制系统,并且想知道 TFS 2012 版本控制与 Mercurial 在合并和分支方面的比较。我们没有一个庞大的团队,可能只有我和另一个开发人员,所以我们可能不需要 DVCS 提供的强大的分支/合并功能。就其功能而言,我无法找到有关 TFS 2012 版本控制的太多信息。任何人都可以指点我指南或突出一些功能吗?请注意,我们只能在 VS 专业版上访问 TFS 2012 的独立版本。
谢谢
Mercurial 分支在一个关键方面与 TFS 不同。TFS 将您的分支存储在文件空间的不同部分,而 Mercurial 将它们存储在历史记录本身中。这大大减少了分支和合并中涉及的摩擦。例如,这意味着:
分支和合并有几个优点,甚至适用于小型团队或单独的开发人员。一个这样的例子是即使您在开发中还有其他功能,也能够修复生产系统上的错误。另一个例子是探索性或实验性开发:如果一种方法行不通,您可以轻松地回滚到开始并尝试第二种不同的方法,同时仍然保留原始方法以防万一您需要参考它。
之前的“答案”有些奇怪。TFS 2012 中的分支和合并工作与您期望的完全一样,具有 GUI 和命令行实现。这是一个很好的文档,相当完整地涵盖了该主题:
ALM 游侠指南 已更新
前言:
我与 TFS 没有任何关系,也从未使用过它
脸:
最新的“tfs2012”问题,至少有一些(如何设置 TFS 以迎合多个客户的多个项目,TFS 2012:将二进制文件与构建和源代码相关联,TFS 2012 禁用多重签出不起作用),向我们展示了问题,其中我从来没有考虑过 Mercurial 中的问题(有时会添加一些外部工具)。但您也可以理解,TFS 定位为完整的 ALM 工具,而不是 Mercurial 的纯 SCM。
James McKay的“Team Foundation Server 是版本控制工具的 Lotus Notes”并不是最新的文章(2011 年 2 月),但我认为至少有些陈述仍然有效。
分支合并的数量仅与团队规模相关,主要取决于开发风格,开发人员的习惯
如果您在一个小团队中,毫无疑问选择 Mercurial。
Mercurial 对于您将使用的特定开发工作流程来说是轻量级和灵活的。它更适合较小的团队,事实上,它甚至适合单人开发,因为它不会带来任何管理开销。
关于合并的必要性,它实际上并不是您所暗示的高级功能:它是大多数(全部?)非分布式 VCS 无法正确处理的非常基本的功能。你现在可能不需要它,但如果你需要它,你会在 Mercurial 中拥有它并且它可以正常工作。