TFS 2012版本控制与Mercurial

时间:2012-10-31 15:50:47

标签: mercurial tfs2012

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

由于

4 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:2)

以前的“答案”有点奇怪。通过GUI和命令行实现,TFS 2012中的分支和合并与您期望的完全一样。这是一个很好的文档,完全涵盖了这个主题:

ALM Ranger Guide 已更新

答案 2 :(得分:0)

<强>前言

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

<强>脸部:

最新的'tfs2012'问题,至少有一些(How to set up TFS to cater multiple projects to multiple clientsTFS 2012: Correllating binaries to builds and source codeTFS 2012 Disable Multiple Check-out not working),向我们展示了问题,我从未考虑过< Mercurial中的em> question (有时会添加一些外部工具)。但是你也可以理解,TFS定位为完整的ALM工具,而不是纯粹的SCM,Mercurial是。

来自James McKay的{p> "Team Foundation Server is the Lotus Notes of version control tools"并不是最新鲜的文章(2011年2月),但至少有些陈述仍然有效,我认为。

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

答案 3 :(得分:0)

如果你是一个小团队,毫无疑问,请使用Mercurial。

Mercurial在您将使用的特定开发工作流程方面具有轻量级和灵活性。它更适合小型团队,事实上,它甚至适合独奏开发者,因为它不会产生任何管理开销。

关于合并的需要,它实际上并不是你所暗示的高级功能:它是一个非常基本的功能,大多数(所有?)非分布式VCS无法正确使用。你现在可能不需要它,但如果你曾经这样做过,那么你就可以在Mercurial中使用它,它只是有效。