TFS对于大团队是否高效,SVN对于小团队是否高效?

3

我是一个开源和SVN爱好者。我们公司现在面临选择使用SVN还是Team Foundation Server的情况。我试图说服其他人使用SVN,因为我认为TFS对于大型团队来说更加适用。但是我们只有7名开发人员和3名测试人员。我对此有正确的看法吗?


我怀疑在这个主题上已经进行了一些严肃的研究,没有这些研究,只是一些观点。这个问题不适合[SE]。 - Palec
7个回答

4
你认为TFS是一个大型系统的原因是什么?
我在我的Windows 7笔记本电脑上使用SQL Express安装了TFS,甚至没有注意到它的存在。使用TFS2010,您可以选择不从一开始安装Sharepoint、Reporting Services和Analysis services集成。相反,您可以只拥有版本控制、工作项跟踪(错误、测试、问题、任务和用户故事)和自动化构建。
实际上,我在不到20分钟的时间内安装和配置了所有这些内容,在我最近的项目中,用这些东西设置一个新产品大约需要30分钟。
你为什么要使用TFS?
1.便宜(对于所有MSDN订阅者免费,零售价为400美元,带5个用户)
2.安装快速
3.设置迅速
4.易于使用
5.有很多文档
6.支持来自单个供应商的所有内容
如果您对TFS基本安装所提供的功能感到满意,那么您可以添加Lab管理(如果您想要自动化环境测试)或Analysis services(如果您想要更多报告)。

3
将SVN与TFS进行比较就像将苹果和橙子进行比较。 SVN是一个版本控制系统,而TFS是像其他人已经提到的ALM平台。
假设一家公司选择Subversion、CruiseControl.NET、某种敏捷项目管理工具、一个缺陷跟踪器(Bugtracker.NET、Bugzilla等)。假设这个公司选择的所有工具都是开源软件,你会认为它是免费的,对吗?不幸的是,你仍然需要开始集成所有这些工具,这才是真正的成本所在。
当然,像Team Foundation Server这样的平台带有许可证费用,并提供所有先前提到的开源软件工具,但已经很好地集成在一起。
因此,如果您想要支持ALM的工具,并且您面向微软,那么您应该认真考虑TFS作为选项。当然,作为技术人员,弄清楚如何将Bugzilla与Subversion和项目管理工具集成在一起是很有趣的,在尝试解决如何将所有数据导入/导出到专门为HR部门开发的定制报告工具中以进行时间跟踪报告时也是如此。你明白我的意思。
最终,开源软件的替代路径成本比TFS路径高得多,人们只是不喜欢承认这一点,另一方面,如果你只需要一个版本控制系统,那么你不需要TFS。但是,如果作为开发人员,您只需要这些,您能称自己为严肃的开发人员吗?;-)

3

TFS不仅仅是版本控制。如果你只需要版本控制,TFS太昂贵了。在我看来,我会选择SVN。然而,如果你需要测试套件、问题管理等功能,那么我建议考虑使用TFS。


但是使用SVN您可以创建测试,并借助其他开源项目,您可以利用问题管理。为什么一个人应该使用像TFS这样的庞大应用程序呢? - Afshar Mohebi
4
当你考虑加入所有这些其他因素时,你不是在面对类似的规模和复杂性问题吗?看起来TFS的“规模”在这里是一个幌子。如果你想要SVN,请根据其优点进行论证。 - DaveE
2
可以说,一个集成的、单一供应商的解决方案可能比拼凑开源组件更容易管理,甚至拥有更低的拥有成本。或者也可能不是这样。这是我们需要衡量的事情,而不仅仅是得出结论。 - Steven Sudit
2
同意所有人,我喜欢TFS。起初我并不喜欢,但现在我越来越喜欢它了。我也是SVN和SourceGear的粉丝。 - Dustin Laine
1
有趣的是,CodePlex为其TFS源代码控制系统提供了SVN接口。 - Steven Sudit
显示剩余3条评论

3

我不确定在团队规模方面两者之间是否存在任何固有差异。我知道的主要区别如下:

  1. TFS提供了除源代码控制外的其他功能,例如缺陷跟踪和“Team Build”。
  2. 所有TFS功能都很好地集成到Visual Studio IDE中。
  3. 许可证成本。

看起来SVN拥有一个非常庞大的社区,这对我来说是一个重要的优点。 - Afshar Mohebi
6
如果您已经熟悉其中一种产品,那本身就是一个很大的优势,尤其对于小团队而言。虽然大多数源代码管理系统的基本日常功能相当容易学习,但更难的任务(如管理、备份、权限管理、分支等)可能需要花费较长的学习曲线。 - C. Dragon 76
根据我的经验,TFS 对于小团队来说非常适用。不过,SVN 也同样适用。正如 C. Dragon 所说,选择更多地取决于集成和先前的经验。 - Steven Sudit
1
同意C. Dragon的观点——熟悉度非常重要,特别是当你没有资源让某个人成为“TFS专家”,也无法参加整个微软培训/贸易展会/顾问社区时。另一方面,我认为TFS更有可能扩展得更好。根据我所了解的SVN架构,我非常怀疑它能够处理大型TFS实例所需的负载(平均工作区中>1M文件)。 - Richard Berg

1

+2 分钱。

TFS 不仅为您带来源代码控制 + 工作项跟踪(缺陷、测试、问题、任务和用户故事)+ 自动化构建,还提供了一个非常庞大和令人印象深刻的分析数据库,您可以在其中交叉信息来自这些不同的数据源,无需额外工作。我的意思是,您可以看到为什么特定的构建有一些错误,与已检入的指定文件相关,与与文件相关的任务/错误相关,与与任务相关的用户故事相关等。无需额外的努力,您可以获得开发项目中“正在发生”的更详细的视图。


1

我曾经看到过在自动化构建服务器等支持下,很大的团队成功地使用SVN。如果你想说服别人采用SVN,最好只是列出你喜欢SVN而TFS没有的三个原因以及为什么你认为这些原因很重要,而不是笼统地说一个比另一个“更有效率”。


我相信SVN。但我正在寻找一些理由来表明TFS是一个巨大的应用程序,我们不需要其所有功能。 - Afshar Mohebi
@afsharm,如果你只是要对你的老板撒谎,那么你不需要我们的帮助。 - Steven Sudit
这并不是谎言,他想在一个小团队中使用TFS,但我认为TFS对于一个小团队来说有太多的配置。此外,他认为使用TFS就不需要任何维护工作。 - Afshar Mohebi
@afsharm:一个小团队有多小? - Steven Sudit
1
我不确定“过多配置”是什么意思。上周五我启动了一个TFS生产实例。管理员给我提供硬件后,大约花了两个小时就可以使用了。为了方便管理用户等,使用AD组。我已经使用并超出了SVN。TFS不仅支持编码方法论。由单一厂商提供的VC、WIT、流程、报告和构建的集成环境非常吸引人。与VS的紧密集成也很棒。我在五年前从SVN转到TFS,并在两家公司中使用了它。 - Joseph Ferris

0

如果你想看看TFS有多好 - 创建一个项目,然后尝试将其导出到另一个TFS系统 - 从我所看到的来看,你是做不到的!

因此,每隔几年你就必须扔掉所有东西,重新开始 - 因为在TFS中没有内置的方法可以导出所有你所做的事情。当你建立一个新系统时 - 你不能移动所有的历史工作项等,唯一能做的就是手动将你的代码移动到新系统,并重新创建所有内容。

这是浪费一周工作时间的好方法,对于每个你需要移动的项目都是如此。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接