SVN简介:
SVN全名Subversion,即版本控制系统。SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。
具体功能和使用说明的话,我就不多说了。相信大家也都用过很多了。大部分的合作项目都是在上面进行了。
TFS简介:
全名:visual studio Team Services。是微软的一款ALM(Application Lifecycle Management )软件项目生命周期管理工具,用来管理您的源代码、文档等存储库、生成过程、测试基础架构和实验室部署,同时轻松进行协作和报告状态。Team Foundation Server 很好的支持各种规模的团队开发,以便您连接、协作和按时交付。
让我们从一个软件开发团队的不同角色来进行一个简单的功能说明。
1、项目经理:
初始化项目:新项目、设定软件过程、配置项目门户、配置源代码管理、创建迭代、设置代码迁入策略、上传项目相关文档;
组织团队及团队成员分配权限
用工作项跟踪管理项目:跟踪管理QoS 需求、跟踪管理功能性需求、跟踪管理任务、跟踪管理BUG 、跟踪管理风险
项目分支和合并
基线管理
设置警报和通知
案例演练
2、架构师:
使用用例图、类图、活动图、序列图、包图和部署图
验证架构
非功能性需求设计
反向工程:从代码到架构视图
3、开发人员
版本管理:迁入、签出、分支、合并、解决冲突、搁置和签出搁置、将迁入和工作项关联;
代码走查与代码重构
代码覆盖分析、代码静态分析、性能探测
单元测试:测试驱动开发模式
4、测试人员:
测试计划和测试用例
集成测试、系统测试、需求确认测试、发行测试;
WEB项目测试
UI自动化测试
跟踪BUG
案例
5、配置管理人员:
构建服务
实验室管理器
创建新的构建类型、执行构建、查看构建、构建产生工作项
持续化集成
简单粗暴的对比:
1、是否开源?
SVN,是。
TFS,否。
2、用户体验度?
SVN: 代码的Commit和Check out和更快,操作上更简单,学习成本低。作为源代码管理,很不错!但是功能有限
TFS:功能强大,全生命周期的管理都有,从设计一直到开发、测试、构建部署。操作比较复杂。学习成本较高。
3、实施难以程度?
SVN:简单,实施起来容易,服务端搭建较容易。其他开发成员,只需要安装客户端就能使用。
TFS:复杂,安装、配置和部署过程比较繁琐。团队开发大型项目,能够在权限上做很好的控制,而且可以做分授权。在实施全生命周期的管理上,很难全部落实下来。一旦项目的资料越来越多的时候,大家就逐渐失去了探索和发现的耐心了。
4、效果?
SVN:源代码、文件版本控制上,短小精悍,能充分满足版本控制的需求!但是权限控制上,还有提升空间。
TFS:全生命周期管理,协作方便。管理上统一,权限控制做的很不错!一次付费,“受益终生”。
小结:如何抉择?我的建议是,根据自己公司的情况来,如果开发的项目不大(代码量不超过50万行),项目团队人员不多(不超过100人),可以使用SVN做源代码和文档的版本控制,至于测试和需求,则可以用一些其他的开源工具,比如:禅道、confluence。对于,大型项目和开发团队的话,建议使用tfs。再加上,现在微软也逐渐开始拥抱开源了!