我认为这实际上取决于您团队的规模,以及您希望从源代码控制中获得什么。
我将 bugzilla 与 Perforce 结合使用了几年,发现在一个非常小的团队(2-3 人)中工作时,两者都非常擅长自己的个人事情,但是由于它们之间缺乏集成和从一些需要时间来适应的小特质。
我最近换了一份广泛使用 TFS 的新工作。这家公司有 4 个主要团队,每个团队有 10-12 名开发人员,在该级别以下划分为更多的项目团队,正是在这种环境下,TFS 真正在 imo 中大放异彩。在我看来,它最大的优点是:
1) 与 Visual Studio 的集成 - 这不仅仅是打开更少窗口的情况,而且确实可以加快速度并使您的生活更轻松。诸如 VS 在您工作时自动为您检出文件(不会因无锁编辑而导致意外检出问题),能够同步本地 + TF 构建,能够快速将本地版本与以前的版本进行比较……是的,您可以获得3rd 方插件集成,但没有达到这个级别并且具有相同的稳定性。
2) 通信功能 - 简单的东西,如与 Live Messenger 的集成(前提是您正确配置 TFS)非常适合大型团队。我们使用 WLM 在办公室内进行交流和协作,因为它比每次您需要快速提问时都快到别人那里来。
3) 将构建/更改列表链接到任务 - 是的,其他 SCM 会这样做,但它只是以一种非常好的、集成的方式完成的。我想这对 TFS 来说没什么特别的,但我个人喜欢它跟踪这个的方式。
4)易于合并/无锁编辑。我有使用其他一些合并工具的经验,并且 TFS 工作得很好,使得并发编辑后的合并非常简单。它在这方面与 perforce 非常相似,但也有一个通常非常有效的自动合并工具,我将其用于我知道不会对其他开发人员正在进行的编辑造成任何潜在问题的微小编辑。
5)自动构建/构建管理。使用包含 20-30 个相互依赖的项目的大型解决方案,这是天赐之物。我们将它设置为每 20 分钟排队一次构建,如果发生了变化,并且当发生变化时,它会列在历史日志中......所以当您需要更新本地库时很容易看到。
除了构建管理之外,我没有任何配置它的经验,但我听说这是 TFS 最糟糕的部分..让一切正常运行有点痛苦。
因此,将其转化为商业案例。我想说,如果您是拥有大型/多个团队的 Microsoft 软件公司,那么您将看到上述功能所带来的时间节省和生产力提升是值得投资的在设置它。它在大多数情况下免费使用,因为您可能会订阅 MSDN(可能有一些 CAL 问题,但我不确定),因此您最大的成本将是用户培训和配置。