Team Foundation Server与SVN和其他源控制系统

Mik*_*hov 10 version-control tfs

我们目前正在寻找在我们的项目中使用的版本控制系统.目前我们的团队不到10人.我们过去5年一直在使用VSS.我从未使用过SVN和其他版本控制系统.

到目前为止,我们一直在使用VSS,但现在存在更强大的源控制系统,如TFS,SVN等.我们计划将项目迁移到Visual Studio 2010,因此首先想到的是开始使用TFS 2010.

我的问题是:TFS与其他源控制系统相比有多好?使用它是一个好主意,还是我们应该使用SVN(或任何其他系统)?

Mir*_*emm 30

与TFS,Git,Subversion,CVS和VSS合作后,让我快速总结一下我的经验:

  • 可以说Visual SourceSafe(VSS)和Concurrent Versions System(CVS)现在已经过时了.
  • Git在技术上是最强大的工具,但需要一些时间来理解这些概念.只有当你真正采用分布式 scm方法时,它才能发挥其大部分优势.支持Git的第三方软件数量正在快速增长,但尚未普及到SVN.
  • Subversion(SVN)通过相当常识和通用的方法提供简洁易懂的概念.为大多数IDE和文件管理器提供了大量的集成软件,以及许多扩展软件.由于使用了HTTP和WebDAV等标准协议,它还集成了实际上并非设计用于SVN的软件,例如Microsoft Office("Windows Web文件夹")等.如果您计划采用更传统的集中式SCM方法,SVN将是我的建议.
  • TFS版本控制与Microsofts"Visual Studio"产品线和TFS开发生命周期平台的其余部分紧密集成.为了在Visual Studio之外使用,有许多工具和命令行界面,但是在没有Visual Studio的情况下使用TFS真的没有意义,相信我.TFS版本控制在技术上是我曾经使用过的最糟糕的版本之一.原因:
    • 它需要显式检查您使用的每个文件.由多个人同时检出的同一文件意味着TFS发现冲突,无论这些人是否真的改变了什么.
    • TFS使用"工作区"概念,工作副本中的操作在您工作时记录在服务器上.您不仅可以将源树的多个副本签出到多个文件夹,还需要与服务器保持持续的在线连接(存在"离线"模式,但这会让事情变得混乱).对本地工作副本中的任何内容的所有更改都必须首先通过TFS客户端工具,因为文件是以只读方式下载的.
    • 事实上,TFS在用户界面中显示的冲突多于实际存在的冲突,这鼓励用户批量接受或批量拒绝更改,从而导致以某种方式丢失更改.因此,它阻碍了您对实际重要事物的看法,这对于版本控制系统来说是危险的.
    • VS中的UI集成不支持在认​​真使用SCM系统时需要的许多有用操作,例如原子(仅服务器)创建分支,从早期版本分支,取消删除,恢复给定变更集的更改,以及许多更多.
    • 它非常慢,因为创建分支意味着如果通过VS GUI完成,则下载源树的全新副本.文件夹的简单重命名也很慢.总而言之,它似乎为简单的操作创造了大量的网络流量.
    • 内置的"搁置"功能,您可以在不检查它们的情况下保存当前更改,这是一个不错的主意,但在大多数情况下都非常无用,因为当您重新应用搁置时它不支持冲突解决或合并更改您的工作副本.如果创建分支像SVN一样简单,可靠,快速和直接,您就不需要这样的功能,因为每个开发人员都可以创建自己的分支来管理这个需求.
    • 在我们的环境中,TFS版本控制中出现了许多错误,其中实际上已经更改过的文件没有被记录,并且在少数情况下文件被恢复为早期版本,恕不另行通知.这真的不应该发生在版本控制系统中!

  • 3年过去了.但是当我今天看到这篇文章时,请相信我它是正确的.好工作@MirkoKlemm (4认同)

Jos*_*ris 10

Team Foundation Server是一个完整的应用程序生命周期管理套件.如果您拥有带有MSDN订阅的Visual Studio 2010的Professional,Premium或Ultimate版本,则Team Foundation Server 2010现在是免费的.您的所有Visual Studio用户也属于该分类,并且不需要额外的CAL.但是,其他用户将要求您购买CAL以保持与许可证的兼容性.

使用Team Foundation Server 2010,您将获得源代码管理,流程管理,缺陷跟踪,构建服务,报告,项目门户等.SVN是严格的源代码控制.我用过这两种,它们是不同的野兽.可以公平地说,SVN提供的功能类型总体上是Team Foundation Server的一个子集.虽然有第三方连接器可以更容易地在Visual Studio中使用SVN(免费,我相信 - 同样),但Visual Studio和Team Foundation Server之间的本机集成是相当无缝的.从管理角度来看,无论是在服务器级还是项目级,您都可以在易用性和功能之间取得出色的平衡.

在过去三年左右 - 两个不同的雇主之间 - 我已经设置并安装了Team Foundation Server并在其生命周期内对其进行了维护.两家公司都利用它的优势,能够将有序的流程带到他们的SDLC.如果您是敏捷/ Scrum商店,MSF Agile v5模板非常出色.使用任何工具,Sprint计划和管理从未如此简单.

编辑 - 添加有关小团队的信息:

我注意到关于小团队的问题的评论.鉴于其价格点,Team Foundation Server 2010现在也适用于小型团队.不过,我不会在Team Foundation Server 2008中推荐它.使用最新版本,有一个非常好的"基本"配置,提供轻量级安装,无报告和门户功能.如果您是具有此配置的"一人店",您也可以在本地安装它(Microsoft实际上将其列为客户端安装的可接受配置.)我在笔记本电脑上将其用于我的POC工作 - 已设置制定每晚维护计划并将备份移至Dropbox.非常适合安心使用.;-)