TFS与SVN

Bin*_*ony 59 .net svn version-control tfs configuration-management

我即将启动一个项目(.NET),需要在TFS和SVN之间做出决定.

我更习惯SVN(与龟客户端),CVS和VSS.TFS是否具有SVN中的所有功能

有没有人从SVN切换到TFS并发现它值得吗?
如果我们需要使用TFS,我们可能还需要Visual Studio.

[编辑]
因为我们已经拥有TFS的许可证,所以钱不是一个考虑因素.我对TFS vs SVN的Source Control功能更感兴趣,当然其他功能列表也很受欢迎.

Nil*_*han 84

" TFS和SVN之间无法比较 "

SVN:源代码版本控制系统
TFS:完整的软件开发管理系统,包括版本控制,发布管理,需求跟踪,文档发布等.

两者都很高兴使用可用于VS2005的IDE集成插件(例如AnkhSVN,Collabnet的插件),因此不需要考虑.

选择考虑的标准:
- 如果你有一个没有或很少的预算项目选择SVN
- 如果你只是寻找版本控制系统选择SVN,如果你正在寻找完整的开发管理选择TFS
- 如果你有耐心与不同的集成工具(CruiseControl.Net,NUnit,NCover,FIT)实现适当的开发环境选择SVN,或者如果您正在寻找所有这些开箱即用的实现,那么请选择TFS

  • VS的SVN插件非常好,经过TFS的痛苦,再也没有了.TFS可以与VS完全集成,但这并不意味着它可以使实际版本控制或简单功能更好. (13认同)
  • @Brann:VisualSVN很好,AnkhSVN也是如此 (6认同)
  • 直到最近,当我升级到最新的2.1.x版本时,我遇到了AnkhSVN的问题.从那以后我没有遇到任何问题. (4认同)
  • @nils:我绝对不同意"两者都有很好的IDE集成".TFS集成到VS是完美的.SVN集成是不完整的(许多功能只能从命令行获得),有时还有点儿麻烦.IDE集成当然是一个需要考虑的重要事项. (3认同)

MrT*_*lly 32

在18个月前使用TFS后,我发现它有缺陷,缓慢,烦人,搜索标准非常有限,并且有一种产品的感觉被一群不感兴趣,付费不足,过度工作的技术人员冲出来被迫使用Sharepoint和其他MS技术,因为这是营销所需要的.说真的是狗,我宁愿使用SourceSafe!

另一方面,SVN是技术专家,IDE集成是一种痛苦,它偶尔会混淆,但用户群庞大,大多数问题都可以通过快速的SO问题得到解决.

你考虑过Vault吗?运作良好,并不太昂贵.

  • 也许是失败,但这并不是解释发布这样糟糕的软件,我很高兴错了,但这是一个有效的观点. (4认同)
  • 保险柜绝对可怕.这是我用过的最糟糕的源控制系统. (3认同)

Chr*_*ter 24

如果您使用的是2013版本并使用基于Git的存储库,我只会推荐TFS.我在以前的版本中遇到了太多问题,认为它们很稳定.

  • 一次发送多个文件到diff工具是不可能的.当您想要在合并之前查看更改并且不可用时,这非常有用.
  • 功能的可用性不一致.某些功能仅在IDE中可用,而其他部分仅可从Windows资源管理器中获得,而其他功能仅可从命令行获得.
  • 无法从IDE中将文件添加到版本控制,只能从Windows资源管理器集成中获得.
  • 访问工具集只能在IDE中使用,而不能通过Windows资源管理器集成获得.
  • 缺乏统一的安装程序.仅安装TFS是不够的,还必须安装团队工具和电动工具才能获得基本功能.
  • 机架集功能不合并.做私有分支的一种很酷的方式本质上可以保证你的代码会过时并停止工作.
  • 如果需要使用Visual Studio以外的编辑器,则必须在编辑文本文件之前手动解锁它们.
  • 有时Visual Studio会忘记解锁它自己管理的文件并引发错误.
  • 签入和搁置UI基于可用文件提交已提交到TFS的内容,而不是文件系统中实际存在的内容.这使得错过文件非常容易.(这实际上是Visual Studio处理项目文件的方式的问题,但这本身就是另一种咆哮).
  • 由于前面提到的问题,使用非Microsoft工具编辑源代码是不必要的.
  • TFS配置与您的源一起提交.这意味着如果更改TFS服务器,则所有历史记录的配置现在都不正确.您可以使用的默认配置会覆盖此行为,但这并不明显.
  • 除基本级别外,不支持忽略任何过滤器.
  • 无法处理超过249个字符的路径.
  • 已解锁但未编辑的文件显示为已更改,即使它们尚未显示.区分已更改和未锁定会使差异变得更容易,或者更好地完全取消整个破碎的解锁系统.
  • Windows资源管理器图标叠加层无法清楚地显示文件是否已被编辑.TFS中的所有文件都有一个绿色角落,而修改后的文件会在图标底部添加铅笔.切换到红色角落进行修改将更容易看到或使用图标的龟系统.
  • 较旧版本的Visual Studio在较新版本的TFS中集成了问题.这意味着我们现在在源代码管理中具有IDE版本依赖性.
  • 默认情况下,在不需要时包含用户解决方案文件.当然,我承认这可能是一个偏好问题.
  • 错误的缓存使得本地副本和服务器之间的差异无法准确反映.获得最新并发现您实际上没有最新版本是非常令人沮丧的.

  • 这应该是asnwer (3认同)

Sau*_*tis 14

现在已经有1.5年了,我正在使用SVN进行各种项目.到目前为止我用过的设置:

  • Visual Studio的AnkhSVN客户端.它从版本2开始就很好地集成了Source Control提供程序.
  • 服务器可以是Windows上的CollabNet Subversion,也可以是Linux上的带有SSL + SVN的Apache 2.2.

没有任何这些设置有任何问题,我绝对建议使用SVN,因为它是免费的,易于开始使用.此外,许多项目管理/错误跟踪包都与SVN集成(例如trac).


ach*_*a99 12

我选了SVN.我之前从开发人员的角度看过SVN,我目前正在使用TFS,让我告诉你TFS很痛苦.虽然TFS功能齐全且不仅仅是版本控制,但它的版本控制充其量只是草率.合并是可怕的,我们现在很多人转向手动合并或合并工具,因为我们不能依赖TFS.文件丢失了,有时候不会下载到本地系统,而且它的行为只会让你想要对着桌子敲打头.

话虽这么说,如果你想要TFS的所有荣耀,愿意使用它的痛点,它是一个很好的工具来设置自动构建和发布.


Sak*_*kle 10

在您决定之前查看本文:开源项目的TFS与Subversion的比较

  • 我不是Jeffs在文章中评论的乐趣"Codeplex永远不会,永远支持Subversion ......它的建筑不可能性"(2年前制作).永远不要说"我们永远不会需要更多640K的记忆".;) (3认同)

Ree*_*sey 9

我已经使用了两者 - 但实际上,我已将主要项目从TFS切换到SVN.我发现离线和匿名访问在我的项目中非常有价值.

总的来说,我认为它们具有可比性.我会选择你认识最好的那个,而你是最幸福的.我没有发现其中一个特定功能大大超出了其他系统中的功能.

  • 尽管如此,我必须说,离线访问的基本模式已被打破.在断开连接的模型中,"检出"动作相当荒谬,但TFS仍然会让你这样做.如果你不这样做,它就不会像SVN那样识别你的变化.啊! (4认同)

dan*_*ain 7

如果你熟悉svn我会坚持下去.Tfs不是免费的,并不简单.它不仅仅是源代码控制.如果你是像我们这样的.net商店,并且你决定在整个开发周期使用什么产品,那么它就是一个竞争者,但是对于简单的源代码控制来说,它是过度的.


Bra*_*ann 4

好吧,对我来说,选择显然是 TFS :

  • 至少可以说,SVN 与 Visual Studio 的集成是不完整的(IDE 中无法提供很多功能),并且存在一些问题(AnkhSVN 确实如此),而 TFS 则是完美的(这是有道理的......)。我使用 SVN(一个月内)多次损坏我的整个工作区,从未使用过 TFS(大约 2 年)

  • 虽然两个系统的源代码控制相关功能可能相当相同,但它们可以通过 TFS 直接从 IDE 访问,而如果您使用 SVN,则必须依赖TortoiseSVN或其他外部工具。只需在解决方案资源管理器选项卡上单击几下即可访问几乎所有 TFS 任务。

  • 使用 TFS 进行合并要容易得多,即使对于复杂的合并也是如此(例如,SVN 会将 <<<<<< 和 >>>>>>>>> 添加到您的 .csproj 文件中,因此您需要手动编辑它们以从 VS 再次打开它们。)

虽然我认为这些理由足以让我们更喜欢 TFS 而不是 SVN,但我必须补充一点:

  • TFS 不仅仅是一个源代码控制工具(想想工作项、项目门户等)

    我过去在一个中型项目(12 名编码员、3 名测试员、3 名业务分析师)上使用过它,我们已经能够成功地将所有任务集中在 TFS 中(错误报告、项目文档、构建过程、 ETC。)

    我并不是说使用 SVN 和其他第三方工具不可能做到同样的事情,但将所有东西很好地集成在一个产品中绝对是件好事。


公平地说,以下是 TFS 的两个明显缺点:

  • 它的价格

  • 安装TFS相当痛苦,而SVN安装则只需几分钟。

    在 SqlServer 2008 上安装 TFS 2008 相当复杂,您无法在 PDC 等上安装 TFS。对我来说,这绝对是我使用过的 Microsoft 产品中最糟糕的安装体验。

    话虽这么说,一旦安装,TFS 就非常容易使用(特别是对于不熟悉源代码控制系统的程序员)


在我当前的项目中,我从 SVN 开始,并很快切换到 TFS。我很高兴我做到了。

我决定切换的主要原因显然是 SVN 的整体错误行为(我使用VisualSVN作为服务器,AnkhSVN作为客户端)。我发现自己每周至少要花几个小时来研究神秘的 AnkhSVN 错误消息。

迄今为止,我还没有找到任何理由对转向 TFS 感到后悔。

  • 我很难相信你是 TFS 的坚定支持者,因为我在工作中使用它,这是我遇到过的最痛苦的事情。它在合并方面做得很糟糕,虽然 SVN 可能会在冲突上添加标记,但这些很容易修复。使用 TFS 时文件丢失!TFS 太烂了... (95认同)
  • svn + Visual svn 和 tortoise svn 非常无缝,没有丝毫 bug。 (89认同)
  • 如果用户对 AnkhSVN 的可用性有疑问,请通过 users@ankhsvn.open.collab.net 告诉我们。如果您查看我们的邮件存档(可在该站点上找到),您会发现大多数真正的用户问题都是在几个小时; 但我们无法帮助那些没有询问我们的用户。 (17认同)
  • 由于 TFS 的签出/签入模型,TFS 对于超越“简单合并”的合并来说是一种痛苦。我讨厌必须“签出”文件。 (17认同)
  • @Brann,我简直不敢相信你关于 SVN 和合并 .csproj 文件的评论。如果您认为 TFS 会毫不费力地合并这些内容,那么您在处理大型合并时将会大吃一惊。 (12认同)
  • TFS 很糟糕 - 只是因为必须依赖 VS 版本。我现在正在经历让 VS 2008 使用 TFS 的痛苦,这是一个耗时的过程。你不能只在 TFS 中签入文件,你必须使用 VS 来做到这一点,你必须下载大量的更新和服务包,而你可以打开 SVN,签入文件,然后继续你的首要任务——编码。重点是,如果您喜欢浪费时间,请选择 TFS。如果您喜欢编码,请选择 SVN。 (4认同)
  • @achinda99。嗯,根据我个人的经验,我在使用 TFS 时从未遇到过任何问题,而在使用 AnkhSVN 时遇到了很多问题。现在,我不会假装我的观点是普遍的;嗯嗯... (2认同)
  • TFS 是否能够让两个用户同时处理同一个文件,并像 SVN 一样自动合并它,这是我们从 VSS 迁移到 SVN 时所追求的主要功能? (2认同)