我即将启动一个项目(.NET),需要在TFS和SVN之间做出决定.
我更习惯SVN(与龟客户端),CVS和VSS.TFS是否具有SVN中的所有功能
有没有人从SVN切换到TFS并发现它值得吗?
如果我们需要使用TFS,我们可能还需要Visual Studio.
[编辑]
因为我们已经拥有TFS的许可证,所以钱不是一个考虑因素.我对TFS vs SVN的Source Control功能更感兴趣,当然其他功能列表也很受欢迎.
" TFS和SVN之间无法比较 "
SVN:源代码版本控制系统
TFS:完整的软件开发管理系统,包括版本控制,发布管理,需求跟踪,文档发布等.
两者都很高兴使用可用于VS2005的IDE集成插件(例如AnkhSVN,Collabnet的插件),因此不需要考虑.
选择考虑的标准:
- 如果你有一个没有或很少的预算项目选择SVN
- 如果你只是寻找版本控制系统选择SVN,如果你正在寻找完整的开发管理选择TFS
- 如果你有耐心与不同的集成工具(CruiseControl.Net,NUnit,NCover,FIT)实现适当的开发环境选择SVN,或者如果您正在寻找所有这些开箱即用的实现,那么请选择TFS
在18个月前使用TFS后,我发现它有缺陷,缓慢,烦人,搜索标准非常有限,并且有一种产品的感觉被一群不感兴趣,付费不足,过度工作的技术人员冲出来被迫使用Sharepoint和其他MS技术,因为这是营销所需要的.说真的是狗,我宁愿使用SourceSafe!
另一方面,SVN是技术专家,IDE集成是一种痛苦,它偶尔会混淆,但用户群庞大,大多数问题都可以通过快速的SO问题得到解决.
你考虑过Vault吗?运作良好,并不太昂贵.
如果您使用的是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版本依赖性.
默认情况下,在不需要时包含用户解决方案文件.当然,我承认这可能是一个偏好问题.
错误的缓存使得本地副本和服务器之间的差异无法准确反映.获得最新并发现您实际上没有最新版本是非常令人沮丧的.
现在已经有1.5年了,我正在使用SVN进行各种项目.到目前为止我用过的设置:
Visual Studio的AnkhSVN客户端.它从版本2开始就很好地集成了Source Control提供程序.
服务器可以是Windows上的CollabNet Subversion,也可以是Linux上的带有SSL + SVN的Apache 2.2.
没有任何这些设置有任何问题,我绝对建议使用SVN,因为它是免费的,易于开始使用.此外,许多项目管理/错误跟踪包都与SVN集成(例如trac).
我选了SVN.我之前从开发人员的角度看过SVN,我目前正在使用TFS,让我告诉你TFS很痛苦.虽然TFS功能齐全且不仅仅是版本控制,但它的版本控制充其量只是草率.合并是可怕的,我们现在很多人转向手动合并或合并工具,因为我们不能依赖TFS.文件丢失了,有时候不会下载到本地系统,而且它的行为只会让你想要对着桌子敲打头.
话虽这么说,如果你想要TFS的所有荣耀,愿意使用它的痛点,它是一个很好的工具来设置自动构建和发布.
在您决定之前查看本文:开源项目的TFS与Subversion的比较
我已经使用了两者 - 但实际上,我已将主要项目从TFS切换到SVN.我发现离线和匿名访问在我的项目中非常有价值.
总的来说,我认为它们具有可比性.我会选择你认识最好的那个,而你是最幸福的.我没有发现其中一个特定功能大大超出了其他系统中的功能.
如果你熟悉svn我会坚持下去.Tfs不是免费的,并不简单.它不仅仅是源代码控制.如果你是像我们这样的.net商店,并且你决定在整个开发周期使用什么产品,那么它就是一个竞争者,但是对于简单的源代码控制来说,它是过度的.