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

发布于 2024-09-30 10:13:30 字数 225 浏览 11 评论 0原文

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

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

谁能给我列出一个比另一个更好的点?我没有使用过 TFS,所以我不知道它的优点/缺点是什么。

I've just joined a new company and at the moment we're using Microsoft SourceSafe as our repository. The settings aren't ideal and it's proving to be a big pain in the neck.

I've recently used Mercurial and thought it was amazing, so I'm advocating switching to that, but it looks like the company already has a Team Foundation Server licence and wants to use that instead.

Can anyone give me a list of points where one is better than the other? I've not used TFS and so I don't know what it's good/bad at.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

赠我空喜 2024-10-07 10:13:30

您无法直接比较 TFS 和 DVCS。

如果您的公司倾向于 TFS,那可能是因为 TFS 具有其他功能(数据收集、报告和项目跟踪,全部与 Microsoft 产品完美集成)


在纯粹的版本控制方面,Team Foundation Server 2010 及其 Team Foundation 版本控制 (TFVC) 2010,引入了分支作为一等公民
请参阅 Team Foundation Server 和分支特征,比较其他

我仍然发现他们的分支模型比 Mercurial 或 Git 更复杂。
请参阅TFS2010 分支到另一个分支的子文件夹Mercurial 中的分支模型指南 (以及这个SO问题,它还详细介绍了合并和话

虽如此,它仍然是 CVCS(集中式 VCS),这意味着您将获得与 DVCS 不同的工作流程:请参阅 描述使用版本控制(VCS 或 DVCS)的工作流程

DVCS 的真正杀手级功能仍然是其合并功能(更简单且比任何 CVCS 都快)。
但是在企业环境中引入 DVCS 仍然很困难

You cannot directly compare TFS and a DVCS.

If your company leans toward TFS, that may be because of the other features TFS comes with (data collection, reporting, and project tracking, all well integrated with Microsoft products)


On the pure Version-Control side, the Team Foundation Server 2010, with its Team Foundation Version Control (TFVC) 2010, introduces branches as first-class citizen.
See Team Foundation Server and branching characteristics, compared to others.

I still find their branching models more complex than a Mercurial or Git one.
See TFS2010 Branching into a subfolder of another branch vs. Guide to Branching Model in Mercurial (and this SO question which also details merges and branches with DVCS)

That being said, it remains a CVCS (Centralized VCS), meaning you get different working processes than with a DVCS: see Describe your workflow of using version control (VCS or DVCS).

The true killer feature of a DVCS remains its merge capability (simpler and faster than any CVCS).
But introducing a DVCS in a corporate environment remains hard.

〗斷ホ乔殘χμё〖 2024-10-07 10:13:30

我推荐 Joel on Software http://hginit.com,其中列出了切换到分布式版本控制的充分理由。

I recommend Joel on Software http://hginit.com for a list of very good reasons to switch to distributed version control.

蓝戈者 2024-10-07 10:13:30

我发现 TFS 存在一些问题,使其与其他 CVCS 略有不同。

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

背景:
我的公司从 SVN 和 TFS 转向,我使用 Mercurial/Git 来完成我的业余项目。我还关注了这个关于将 Mercurial 与 TFS 结合使用的博客,它使我使用 TFS 的工作变得更加愉快。

I have found a few gotchas with TFS that make it a little different than other CVCS.

  • TFS is very difficult to use outside of Visual Studio. Even diffing versions is done inside VS. Personally I only like to use VS for writing code.
  • We have had lots of issues with dll's and other binary files not updating to the latest version.
  • TFS makes all your files under version control read-only. This makes modifying files outside of VS very painful. In fact, this is still causing issues with out Silverlight projects in our Continuous Integration build in TFS.
  • The command line tool for TFS is not easy to use from the command line. (Personally, I like to use the command line)

Background:
My company switched from SVN and TFS and I use Mercurial/Git for my side projects. I also followed this blog about using Mercurial with TFS and it has made my work with TFS much more enjoyable.

叹梦 2024-10-07 10:13:30

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

它的源代码控制方面也很强,但是,就我个人而言,只要我可以看到整个历史记录,不丢失代码,并且不让我的代码“被踩”。我不在乎。

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

现在,在专业使用 Mercurial(BitBucket / Mercurial / tortoiseHG / VisualHG)几天后,我不得不说这些工具似乎有点过时了。与 Visual Studio 的集成就像温热的咖啡(乏味),而资源管理器集成让我回到了“美好的过去”,当时我很幸运没有从事 Visual Source Safe 的工作。

另一件需要注意的事情是从 Visual Source Safe 迁移到 TFS 很容易,这相当轻松。我最近将我上一家公司在 VSS 中的整个历史记录迁移到 TFS 中,只需要几个命令行实用程序,一夜之间就可以获取所有变更历史移过去了。我对迁移如此简单感到震惊(就像我的同事一样),它甚至保留了自一开始以来的所有历史记录(应权力的要求),

我肯定对长期使用 MS 工具有偏见,但是只要有效,源代码控制就不需要太多。

如果您的组织想要真正管理应用程序开发的各个方面,并且他们还没有集成的工具或流程,那么 TFS 将为他们提供从走吧。

从源代码控制开始,以源自 MS Project 的规范结束,与与单元测试相关的工作项目相关,与与自动化构建和部署相关的验收测试相关

最后:燃尽图/速度图

TFS is an Application Lifecylce Management Tool not ONLY a source code repository / versioning system.

It's strength's are:

-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

The Source control side of it is also very strong, however, personally, as long as I can see the entire history, not lose code, and not have my code "stepped on". I could give a darn.

I've been using TFS since 2008 and the latest round of improvement further demonstrates Microsofts commitments to evolving their products and keeping up with industry changes. Personally I love it, but i stay in the Microsoft environment (which i also love).. outside of that, it may not work with everyone's needs.

Now, a few days into working with Mercurial professionally (BitBucket / Mercurial / tortoiseHG / VisualHG ) , i have to say the tools seem a bit dated. The integration with Visual Studio is like luke warm coffee (ho-hum), and the explorer integration takes me back to "the good ol days" when i was lucky to NOT be working on Visual Source Safe.

Another thing to take note of is the ease in migrating from Visual Source Safe into TFS, it's fairly painless.. i recently moved my last companies entire history in VSS into TFS and it just took a couple command line utils and overnight to get all the change history moved over. I was shocked (as where my colleagues) at how easy the migration was, it even kept all the history since the beginning (by request of the powers that be)

I'm definitely biased having worked with MS tools for a long time, but there's not much to source control as long as it works..

If your organization wants to truly manage all aspects of application development, and they haven't got integrated tools or processes yet, TFS will afford them the ability to grow and manage from the get go.

Start with Source Control, end up with specs originated in MS Project, tied to work items tied to Unit Test tied to acceptance tests tied to automated builds and deployments

And Lastly: Burn Down / Velocity Charts

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文