TFS 2012版本控制与Mercurial

Riz*_*Riz 9 mercurial tfs2012

我正在为我们的团队(1到2个开发人员)评估版本控制系统,我想知道TFS 2012版本控制在合并和分支方面与Mercurial的比较.我们没有庞大的团队,可能只是我和其他开发人员,因此我们可能不需要DVCS提供的强大分支/合并功能.就功能而言,我无法找到有关TFS 2012版本控制的更多信息.任何人都可以指向我或指出一些功能吗?请注意,我们只能访问VS专业版的独立版TFS 2012.

谢谢

jam*_*kes 7

Mercurial分支在一个关键方面与TFS不同.TFS将您的分支存储在文件空间的不同部分,而Mercurial将它们存储在历史记录中.这大大减少了分支和合并中涉及的摩擦.这意味着,例如:

  • 分支是隐式创建的,只需更新到最新版本以外的版本,然后在其上进行提交.
  • 分支也可以通过合并再次隐式关闭.
  • 分支可以隐式重新打开,就像您在第一时间创建分支一样.
  • Mercurial可让您非常轻松地在分支之间进行切换.您无需设置单独的工作区映射,也无需从一个目录更改为另一个目录.
  • 分支机构可以是匿名的.
  • 虽然TFS具有"毫无根据的合并"(这基本上意味着它存在与不直接父/子关系的分支存在大量问题),但Mercurial中没有这样的东西.无论两个分支的分歧有多远,总有可能在两个修订版之间找到共同的起源.
  • TortoiseHg中您的分支的图形视图与您的项目历史记录集成在一起,使得更容易理解分支和合并实际上是如何工作的.

分支和合并有几个优点,甚至适用于小团队或独立开发人员.其中一个例子就是能够修复生产系统中的错误,即使您正在开发其他功能.另一个例子是探索性或实验性开发:如果一种方法不成功,您可以轻松回滚到开始并尝试第二种不同的方法,同时仍然保持原始方法,以防您需要返回它.


Laz*_*ger 0

前言:

我与 TFS 没有任何关系,也从未使用过它

脸:

最新的“tfs2012”问题,至少有一些(如何设置 TFS 以满足多个客户的多个项目TFS 2012:将二进制文件关联到构建和源代码TFS 2012 禁用多重签出不起作用)向我们展示了问题,其中我从来没有考虑过Mercurial 中的问题(有时会添加一些外部工具)。但您也可以理解,TFS 定位为完整的 ALM 工具,而不是纯粹的 SCM(Mercurial 是)。

James McKay的“Team Foundation Server 是版本控制工具中的 Lotus Notes”并不是最新的文章(2011 年 2 月),但我认为至少有些说法仍然有效。

分支合并的数量与团队规模只有部分相关,主要取决于开发风格、开发人员的习惯