SVN与Team Foundation Server

Bra*_*ood 76 svn tfs

几个月前,我的团队将源代码控制从Visual SourceSafe切换到Apache Subversion,我们并不高兴.

最近我一直在关注Team Foundation Server,至少从表面上看,它看起来非常令人印象深刻.与Visual Studio有很好的集成,为DBA,测试人员,项目经理等提供了许多出色的工具.

这两种产品最明显的区别在于价格.Apache Subversion(免费)很难打败.Team Foundation Server非常昂贵,因此额外的功能真的必须将Subversion放入裤子中.

  • 有没有人有这方面的实践经验?
  • 他们如何比较?
  • Team Foundation Server真的值得花费吗?

Dav*_*kle 87

以下是两者之间最大的区别,我用过两者:

1)TFS与开发的"Visual Studio方式"紧密耦合. 这并不是说TFS与VS IDE紧密耦合,这意味着TFS很难保持熟悉的"签入"/"签出"范例的Visual SourceSafe,即使它真的不再是一个合适的模型.当你的开发人员可能花时间与网络断开连接时,Subversion的"提交"/"更新"概念会更加真实.TFS希望开发人员始终连接到服务器.这是一个很大的减号.我个人觉得TFS对于文件在服务器和本地磁盘上的组织方式不太透明,因为Visual Studio集成很紧密.甚至TFS的更大支持者也承认,其连接的签入/签出模型对于断开连接的开发人员来说并不是一个令人信服的选择.

2)成本. 那些说TFS不贵的人可能是非常小的商店,或者不符合TFS的许可条款.您需要一个客户端访问许可证,以便在您执 你是一个管理错误的经理吗?您需要〜$ 250 CAL(零售TFS许可证中包含5个).想要报告问题的业务用户?250美元的CAL.开发人员?250美元(除非他们有MSDN,在这种情况下它包括在内).服务器?500美元(如果您有MSDN,则包括在内).当然,向您出售TFS副本的人会告诉您工作项跟踪对于其他用户是免费的,但这些额外用户只能看到他们自己创建的工作项,而不是整个团队的工作项,这不是在面向团队的敏捷环境中太有用了.当你拥有一个中等规模的组织时,所有这一切都会增加,当SVN和CruiseControl.net的增量成本为0美元这么多的最佳产品时,很难证明这一点.(但是,对于TFS的公平性,我还在等待非常好的OSS问题跟踪器)

3)项目结构. 在项目数量较少的大型团队中,TFS可能会运作良好.如果您内部有许多小型,未连接或松散连接的业务线应用程序,TFS的结构可能开始变得霸道.首先,不可能自己定义项目的分类 - 您可以在项目中设置"区域",但是在"项目"的基本上下文中一起跟踪所有问题和文档.创建新的"项目"通常是耗时的,并且对于小的努力来说是过度的.当然,SVN没有任何类型,因为它只关注源代码控制,但如果你需要良好的小项目灵活性,SVN和另一个问题跟踪工具可能是更好的选择.

我认为,值得:

  • 对于拥有大量预算良好项目的大型团队而言,在开发人员几乎完全在IDE中工作的微软商店中,TFS就是赢家.当您需要在项目中集中执行策略时,TFS也会获胜.

  • 对于许多小型团队,有许多不同的,较小的项目,或成本问题的商店,或者开发人员与源代码控制断开连接的团队,请使用SVN.

  • 随着Visual Studio 2010的推出,MSFT已经包含了MSDN的客户端和服务器许可证.因此,如果您拥有所有开发人员的MSDN,他们将免费使用您的TFS服务器.此外,业务用户不再需要许可证来创建工作项,也不再需要查看他们创建的工作项.如果您有多达5个想要访问TFS的业务用户,那么您可以以500美元的价格购买零售TFS服务器许可证,该许可证允许5个用户没有CAL.但是,额外的非MSDN用户每次花费300美元用于CAL. (9认同)
  • 这正是我要找的信息,谢谢. (2认同)

Ben*_*man 48

我很惊讶过去使用Subversion的人甚至对TFS源代码控制有需求.

我对TFS(2005)的经历非常可怕.我已经阅读了各种白皮书和指导,了解如何根据各种开发需求正确构建源代码.

我们的简单情况,我们有主干线开发的主干,我们整合变更和部署的集成分支,以及跟踪过去版本的发布分支是非常常见和直接的,但我们不断遇到问题.

我对TFS的主要问题:

  • 与subversion相比,合并是一个PAIN.
  • 有不固定的错误.我遇到了一个关于重命名/合并的问题,这个问题已经有2年的历史了,并且2005年将永远不会发布修复程序.我们最终将我们的分支移动到"破损"文件夹,我们现在忽略它.
  • 在文件上放置只读锁定是一种摩擦.谁说我需要编辑批处理文件并在TFS内部构建脚本,以便它为我"检查"?Subversion 知道哪些文件发生了变化.那里没有只读锁.
  • 速度.TFS在WAN上速度慢,而且只有当我将VPN连接到我的工作计算机时它才真正可用,这使得我的开发体验整体上非常缓慢.
  • 缺乏良好的命令行和资源管理器集成.IDE集成非常适合日常的Get-Latest,添加文件和签入,但是当您需要在许多项目中执行操作时,可以随意使用好的工具.在有人跳下我的喉咙声称tf.exe运行良好之前......它不是真正的cmd线工具.例如,检入代码不应弹出模态对话框.

......列表还在继续.我认为即使有了所有的整合,也有更好的免费替代方案.

  • 我们有TFS进行分支和合并,这是一场噩梦.目前我们正在关注SVN. (5认同)
  • 嗯,不好意思.我认为自己在其他源控制系统中非常称职,因此对缺乏SOC的评论并不完全正确.上次我检查时,解决方案/项目文件被改变了每个人只需要检查一下.TFS应该能够处理蒙住眼睛的这些文件中的合并.然而,(在TFS 2005中)我几乎每天都有这个问题.这是工具.尝试除了TFS以外的任何东西你都会知道.2010年可能会更好,但为什么要等待?从第1天开始,Git对我来说一直很稳健. (5认同)

Jer*_*ett 46

我最近加入了CodePlex的开源项目.他们使用TFS进行源代码控制,我不得不说它非常棒.到目前为止,我对它印象深刻.我是IDE集成的忠实粉丝,分支和标记代码是多么容易.如果您已经正确配置了所有内容,那么添加一个源代码控制解决方案就像两次点击一样.

现在.是否值得高昂的价格标签?我不这么认为.在CodePlex项目上工作的好处是,它让我可以获得我需要的TFS体验,如果我以后必须在某个地方使用它.如果您希望源控件具有良好的IDE集成,请使用VisualSVN集成包.获得许多相同的功能(在非域计算机BTW上免费)是一项非常便宜的投资.

  • 与SVN相比,TFS源代码控制工具非常糟糕,除了最基本的东西之外你几乎不能做任何事情而不必使用"powertools"(回滚变化是一种"权力"的东西??),它们没有集成在VS. 每个人都说TFS很棒,而且从我所看到的情况来看,服务器似乎也是如此,但是客户端工具非常糟糕. (13认同)
  • 我建议使用AnkhSVN,它是一个很好的用于颠覆的源代码控制插件,其工作方式与使用tfs完全相同...除了工作项等等,当然这不是颠覆的一部分. (11认同)
  • 建立在tfs,不太好,即使你使用它,我建议串联运行巡航控制,这样你实际上可以独立于你的源控制.(即tfs 2005,不会构建vs 2008解决方案) (2认同)

And*_*wis 42

我们是VS.NET商店,我们实施了:

  1. 问题跟踪的Bugzilla
  2. Apache Subversion作为源代码存储库后端
  3. VisualSVN Server用于管理服务器上的SVN
  4. 客户端上的TortoiseSVN(在Windows资源管理器中)和AhnkSVNVisualSVN(在Visual Studio中)
  5. CruiseControl.NET用于自动构建

费用:0美元优惠:无价

如果您是一个小团队,或者还没有准备好购买TFS流程,那么SVN和开源工具就是您的选择.


Cor*_*Foy 23

正如其他人所指出的那样,TFS为您提供了更多功能,然后SVN以项目管理等形式提供了这些功能.使用过两者,并与非常大的公司合作实施TFS,这是我的两分钱.

1)如果您使用的是TFS 2005,请升级到TFS 2008.您会感谢我.TFS 2008有很多改进,使其可行.

2)如果您居住在Visual Studio中并且想要IDE集成,请使用TFS.我使用过SVN集成,几乎总是回到使用TortoiseSVN.

3)如果您喜欢将帐户与Windows身份验证集成的想法,请使用TFS.从那一端的可管理性很好.可能有SVN的钩子 - 我不是积极的,但如果你喜欢GUI驱动的管理,TFS很难被击败.

4)如果您需要跟踪指标或有更简单的方法来实施签入策略等内容,请使用TFS.

5)如果你有人不实现它,如果它不是MSFT,请使用TFS.

6)如果你做的不仅仅是.NET(Java工作,Eclipse等),请使用SVN.是的,那里有非常好的产品(如Teamprise),可与TFS配合使用.但除非其他语言只是您商店的一小部分,否则请坚持使用SVN.

除此之外,两者的SCM特征大致相同.他们都进行分支和合并,两者都进行原子签入,它们都支持重命名和移动.我认为对于刚开始使用分支和合并概念的人来说,在Source Control Explorer中看到分支是很好的.

TFS真的不那么贵(可能是1200美元?).或许与SVN相比.与报表服务和SharePoint的集成很不错,但同样,如果您不使用它,那么无关紧要.

我要说的是下载TFS的180天试用版并试一试.并排进行试验.无论你走哪条路,我都觉得你会很开心.


小智 16

正如Ubiguchi所指出的,TFS不是版本控制产品.购买TFS只是为了将其用于版本控制,显然是浪费金钱.TFS是一个集成的工具套件,用于自动化应用程序生命周期管理的所有方面(并且几乎适用于"企业").

根据Ben S的帖子 - 我不明白你对锁的评论.TFS根本不需要锁.管理员可以将TFS配置为像VSS(一些"不明智的"客户所要求的功能)一样工作到"结账时获取最新",我相信它也会执行结账锁定.

但是通过"正常"使用TFS,"签出"会提示用户输入锁定类型 - 默认值应为"无".用户可以选择签出(或签到锁定) - 但不是必需的.如果您不想要锁,请不要使用它们.

TFS会跟踪哪些用户在服务器上检查出于各种性能原因(更快地获取最新信息)和项目管理(我喜欢看看开发人员检查了哪些文件以及他们的结账时间有多长).

我并不是真的熟悉SVN(我从来没有使用过它) - 所以我不能评论"合并对TFS的影响更糟" - 而且还没有达到Ben S报道的合并错误 - 但我已经很好了使用TFS进行分支和合并的成功.

我知道一个用例TFS对于经常"离线"的用户来说仍然相当薄弱.TFS是一种"服务器产品",它假定用户在大多数时间都是连接的.2008年版本的离线体验有所改善(2005年令人沮丧)但仍有很长的路要走.如果您的开发人员需要(或希望)经常长时间与网络断开连接 - 您最好使用SVN.

使用TFS的SVN粉丝需要考虑的另一个特性是SVN Bridge是一个码本,它允许用户使用TortiseSVN连接到TFS.我的好朋友和我的同事广泛使用它并喜欢它.

关于缺少命令行的评论让我感到惊讶 - 命令行工具很广泛(尽管许多需要单独下载TFS电动工具)

我怀疑Ben的评论是基于2005版本的评估,这显然是"Microsoft V1.0"产品.该产品目前处于2.1版本,不久的将来会推出第3版.


Jam*_*mes 10

TFS很令人发指.此时我使用SVN(带有Live Mesh进行备份)在本地进行版本控制,因为我在TFS上遇到了很多问题.主要问题是TFS使用时间戳来记录您是否拥有最新版本,并将这些时间戳存储在服务器上.您可以删除本地副本,从TFS获取最新版本,并且它会说所有文件都是最新的.这是一个愚蠢的系统,无法保证您拥有正确的文件版本.这导致了许多烦恼:

  • 编辑任何文件时都需要通知TFS,因此您需要始终连接到服务器.
  • 如果您编辑IDE之外的文件,TFS会感到困惑.此外,它将所有文件设置为NTFS中的只读文件.

虽然TFS支持合并,但它确实是一个签入/签出系统.如果编辑文件,通常会发现它已锁定到其他开发人员.有各种各样的方法,但系统是如此令人费解,你将永远遇到问题.例如,我们的开发人员发现他们可以通过检查整个解决方案来解决在NTFS中设置为只读的所有文件,这会对所有文件设置独占锁定.我这样做了几次,因为subversion具有相同的checkout语法,它没有获得锁定.

最后,团队资源管理器(客户端)高达400 MB,TFS服务器需要SharePoint,需要两天时间才能安装.颠覆一键安装程序大约30 MB,它将在一分钟内为您安装服务器.TFS有许多功能,但它的基础是如此不稳定,你永远不会使用或关心它们.TFS在许可证方面是昂贵的,并且在开发人员将浪费在stackoverflow上而不是编写代码的时候:P


Dal*_*gan 8

我的建议,Team System不值钱.我已经使用了两个和使用Team System后,我试图找到一个类似的替代品.基本上你所支付的是集成,你可以争论自定义支持,但我已经能够用一点时间创建一个Team System替换,并将工具集成在一起.

我最近问了一个问题,其他人做了什么来提出一个Team System替代方案.我还列出了用于创建替换的开发工具.希望通过这个答案和我提出的问题,你可以找到对你有用的东西.

我不是团队系统的仇恨者,我只是觉得这不值钱.这是一个非常好的工具,如果你不介意为它付出代价,那么一定要用它.这就是我创造替代品的全部原因.我想要Team System提供的功能.


Don*_* V. 8

这是一个名为Ankhsvn的VisualSVN的开源版本.现在,使用它已经完成了它的好处.

  • 我同意!我之前尝试过它,与现在相比它是错误的.真的很摇滚. (3认同)

Sco*_*nce 7

如果你需要的只是源代码控制,那么TFS就是矫枉过正.我之前的一位雇主在他们的企业中有TFS,VSS和Subversion.我们的企业中没有Active Directory或Exchange Server 2003,因此我们最终在TFS服务器上创建了单独的用户,因此开发人员可以使用它.我们遇到了与Ben Schierman提到的合并相同的问题,以及将我们推向Subversion的其他错误行为.

TFS是否适合您,将部分取决于您的预算,开发团队的规模以及可用于配置/维护解决方案的时间和人员.如果您想要TFS提供的其他问题跟踪,工作项和项目统计功能,那么查看其他备选方案可能值得您花些时间.像JIRA(来自Atlassian Systems)或Trac等产品与Subversion很好地集成,并以较低的价格提供项目或项目经理的监督.

在理想的环境中,使用Active Directory,Exchange Server 2003或更高版本以及存储库的专用人员,TFS更有可能成为一个不错的选择.


pet*_*air 6

我在工作和家里都使用过.它们本身都非常酷.我建议使用TFS的唯一一次是,如果你将使用更多的功能,而不仅仅是源代码控制.如果您需要的只是源代码控制,那么您无法使用SVN,这就是原因.

  1. VisualSVN Server这是一个完整的SVN服务器,有一个很好的插件来管理它.它允许您通过UI使用Windows身份验证.简单.

  2. 乌龟它的乌龟,足够说.

  3. ankhsvn这是一个很棒的SCC插件.对于那些想要完全VS IDE集成的人来说,最新版本是一个完整的SCC插件.因此,您现在可以免费获得完全集成.

以上设置是100%免费的,可以帮助您完成源控制所需的任何操作.