Mercurial在哪些方面比TFS更好/更差?

时间:2010-11-05 07:21:05

标签: version-control tfs mercurial visual-sourcesafe

我刚刚加入了一家新公司,目前我们正在使用Microsoft SourceSafe作为我们的存储库。这些设置并不理想,并且证明这是一个很大的痛苦。

我最近使用过Mercurial并且认为它太棒了,所以我主张改用它,但看起来该公司已经拥有Team Foundation Server许可证并想要使用它。

任何人都可以给我一个积分列表,其中一个比另一个好吗?我没有使用过TFS,所以我不知道它的优点是什么。

4 个答案:

答案 0 :(得分:33)

您无法直接比较TFS和DVCS。

如果您的公司倾向于TFS,那可能是因为other features TFS comes with(数据收集,报告和项目跟踪,都与Microsoft产品很好地集成)


在纯版本控制方面,Team Foundation Server 2010及其团队基础版本控制(TFVC)2010将分支机构作为一等公民引入。
Team Foundation Server and branching characteristics, compared to others

我仍然觉得他们的分支模型比Mercurial或Git更复杂 请参阅TFS2010 Branching into a subfolder of another branchGuide to Branching Model in Mercurial(以及此SO question,其中还详细说明了与DVCS的合并和分支)

话虽如此,它仍然是CVCS(集中式VCS),这意味着您获得的工作流程与DVCS不同:请参阅Describe your workflow of using version control (VCS or DVCS)

true killer feature of a DVCS仍然是它的合并功能(比任何CVCS更简单,更快)。 但是introducing a DVCS in a corporate environment remains hard

答案 1 :(得分:8)

我建议使用软件http://hginit.com上的Joel,以获取切换到分布式版本控制的非常好的理由列表。

答案 2 :(得分:6)

我发现一些TFS的问题与其他CVCS有点不同。

  • TFS在Visual Studio之外很难使用。甚至差异版本也是在VS内部完成的。我个人只喜欢用VS来编写代码。
  • 我们遇到很多问题,dll和其他二进制文件没有更新到最新版本。
  • TFS使版本控制下的所有文件都是只读的。这使得修改VS 非常之外的文件变得非常痛苦。实际上,这仍然会导致我们在TFS中的持续集成构建中出现Silverlight项目的问题。
  • TFS的命令行工具不容易在命令行中使用。 (就个人而言,我喜欢使用命令行)

背景: 我的公司从SVN和TFS切换,我使用Mercurial / Git进行我的项目。我也遵循了这个blog about using Mercurial with TFS,它使我在TFS的工作更加愉快。

答案 3 :(得分:3)

TFS是一个应用程序生命周期管理工具,不仅仅是源代码存储库/版本控制系统。

它的优势在于:

-It's natural integration into Visual Studio (+100)
-It's Full App Lifecycle support from Work Item through Q/A acceptance.
-It's integration with MS Project / Sharepoint, and all the other 
 hoo-ha's you get 
-And now TFS 2012 has added support for "Local Workspaces" which allows
  for off-line working, but also allows "Server Workspaces" which is 
  similiar to TFS 2010. 
-Diff on every Check-in / Commit

它的Source控件方面也非常强大,但是,就个人而言,只要我能看到整个历史记录,而不是丢失代码,而不是让我的代码“踩到”。我可以试一试。

自2008年以来,我一直在使用TFS,最新一轮的改进进一步证明了微软对发展产品和跟上行业变化的承诺。我个人喜欢它,但我仍然留在微软的环境中(我也很喜欢)......除此之外,它可能无法满足每个人的需求。

现在,专业地使用Mercurial几天(BitBucket / Mercurial / tortoiseHG / VisualHG),我不得不说这些工具看起来有点陈旧。与Visual Studio的集成就像是温暖的咖啡(ho-hum),当我很幸运没有使用Visual Source Safe时,探险家的整合将我带回了“好日子”。

需要注意的另一件事是从Visual Source Safe轻松迁移到TFS,这是相当轻松的..我最近将我的最后公司在VSS中的整个历史记录转移到了TFS中,它只需要几个命令行工具并在一夜之间获取所有更改历史记录。我感到震惊(就像我的同事们一样)移民是多么容易,它甚至保留了从开始以来的所有历史(根据权力的要求)

我肯定对使用MS工具很长时间有偏见,但只要有效,就没有太多来源控制。

如果您的组织想要真正管理应用程序开发的所有方面,并且尚未获得集成工具或流程,TFS将为他们提供从一开始就增长和管理的能力。

从源代码管理开始,最终得到源自MS Project的规范,与绑定到与自动构建和部署相关的验收测试的单元测试相关联的工作项

最后:Burn Down / Velocity Charts