比较TFS与SVN,你必须知道的10点区别
![]() |
|
相比SVN,对于TFS的优点我有以下几点看法,供大家参考:
1. 总体比较:
TFS是一个应用软件生命周期管理(ALM)软件,是一个软件研发平台产品,其功能覆盖了软件研发过程中的所有环节(包括源代码管理)和所有角色;而SVN只是一个简单的源代码管理工具。
可以简单来说,TFS具备SVN的所有源代码管理功能,二者是一个包含和被包含的关系。
2. 源代码功能比较:
单就源代码管理方面,TFS的优势在于:
1) 易用性。
在用户习惯上,TFS秉承了微软所有产品的特新,开发人员非常容易上手。软件使用过程中,用户会发现与日常导入操作系统、开发工具(VS),Office软件等有很多共同的体验。
2) 高度集成其他工具。
TFS高度集成主流的开发工具和常见的办公工具。
例如Visual Studio, Eclipse, XCode, ItelliJ,
例如Excel, 浏览器,Project
同时,TFS提供方便的API(.NET API, Java API, Rest API)集成,可以与企业现有的系统实现数据共享
3) 高度集成研发团队的工作项目
可以通过TFS的源代码,查询到代码变更的依据(需求、任务、Bug等)
反过来,可以通过项目管理的数据(需求、任务、Bug等),查询到相应代码的变动。例如,你可以查询到修复Bug所修改的代码行数。
4) 支持分布式代码库(Git)
除了支持集中式代码库(SVN属于此类),TFS还支持分布式的源代码库Git。这为TFS开拓了分布式代码管理的一个广阔天地,是SVN望成莫及的。
5) 搁置集
可以通过TFS将代码保持在服务器上,但是不签入到代码库中,实现将你的变更保存在服务器上一个临时的位置。这样,既备份了自己的代码,有不会影响其他团队成员的代码。
6) 代码评审
TFS提供基于开放工具的便捷的代码评审机制,可以实现研发团队内部之间的代码评审,或者与外部专家的代码评审。
7) 后台数据库存储
TFS的所有源代码和版本信息都存储在数据库中,在大型软件研发团队中,可以大幅提升数据的查询和存储速度。
同时,基于数据库存储,系统管理员可以方便的备份和还原TFS中的任何数据。
8) 代码搜索
TFS提供非常方便的代码搜索功能,开发人员可以在代码库中基于方法、类、对象等查询相关文件和代码。
9) 快速修改代码
你可以不需要任何开发工具,在浏览器上就可以完成代码的修改功能。
10) 自动化生成和发布
开箱即用的TFS就集成的自动生成和发布功能。可以实现修改代码以后,生成和发布自动完成;也可以在发布过程中增加流程控制,例如需要项目经理审批才能继续发布过程。

Figure 1 - Which one is better?
http://www.cnblogs.com/danzhang/ ALM MVP 张洪君
比较TFS与SVN,你必须知道的10点区别的更多相关文章
- 你必须知道的10个提高Canvas性能技巧
你还在抱怨自己写的canvas demo徘徊在10帧以下吗?你还在烦恼打开自己写的应用就听见CUP风扇转吗?你正在写一个javascript Canvas库吗?那么下面九点就是你必须知道的! 一.预渲 ...
- Java程序员必须知道的10个调试技巧
调试可以帮助识别和解决应用程序缺陷,在本文中,将使用大家常用的的开发工具Eclipse来调试Java应用程序. 但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运 ...
- 你必须知道的10个Python第三库
1. BeautifulSoup Beautiful Soup是一个可以从HTML,XML进行提取文件的Python库,日常我们使用爬虫进行数据抓取回来之后,往往需要进行数据解析. 使用它能让你开心愉 ...
- 前端设计师必须知道的10个重要的CSS技巧
对于一个初入门的前端设计师,在设计修改网站前端的时候,我们需要编写一些CSS.JS的内容达到界面效果.今天分享10个对于前端设计师来说重要的CSS技巧,这也是我在给许多客户做网站的过程当中总结出来的. ...
- Web开发者必须知道的10个jQuery代码片段
在过去的几年中,jQuery一直是使用最为广泛的JavaScript脚本库.今天我们将为各位Web开发者提供10个最实用的jQuery代码片段,有需要的开发者可以保存起来. 1.检测Internet ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- (转)【推荐】初级.NET程序员,你必须知道的EF知识和经验
转自:http://www.cnblogs.com/zhaopei/p/5721789.html [推荐]初级.NET程序员,你必须知道的EF知识和经验 阅读目录 [本文已下咒.先顶后看,会涨 ...
- 《你必须知道的.NET》读书笔记一:小OO有大智慧
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.对象 (1)出生:系统首先会在内存中分配一定的存储空间,然后初始化其附加成员,调用构造函数执行初 ...
- 《你必须知道的.NET》读书笔记二:小OO有大原则
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.单一职责原则 (1)核心思想:一个类最好只做一件事,只有一个引起它变化的原因 (2)常用模式:Fa ...
随机推荐
- linux常用命令之文件管理
LS ls:list directory contents 默认情况 默认情况下显示的是mtime 选项 -a 列出全部文件及目录包括隐藏的 -l 列出详细信息,包括文件类型.权限.节点.owner. ...
- SyBase Powerdesigner生成数据库详细表
工具: Sybase PowerDesigner 15.1 Microsoft SQL Server 2005 第一步概要设计: 打开PowerDesigner软件,设计“概念数据模型”(Concep ...
- SAP中日期时间函数总结
1.获得最后一天CALL FUNCTION 'FIMA_DATE_CREATE' EXPORTING I_DATE = I_DATE "输入 ...
- 部署基于国际版Azure的SharePoint三层架构服务器场
前言 微软Azure国际版已经很普及了,这里没有用国内版(世纪互联),用的是国际版,当然是由于公司性质的缘故.这里一步步图文的方式,分享给大家创建Azure国际版的SharePoint三层架构的过程, ...
- Java虚拟机JVM学习04 类的初始化
Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始 ...
- Fragment中的按键监听
在Fragmentzhong中写按键监听,有两处处需要注意: 1)是否是当前显示的fragment:. 2)在所依托的activity中的onKeyDown方法处理监听事件: 其他地方和普通按键监听一 ...
- eclipse中使用javadoc生成文档
1.Javadoc command:输入 [jdk路径]\javadoc.exe 2.Extra Javadoc options输入 -windowtitle '标题'-encoding UTF-8 ...
- Android 的系统架构
Android 的系统架构 Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所 ...
- Mac下载安装Android Studio教程
今天把公司闲置的一台Mac-mini重装了下系统感觉用着速度还不错,平时上班用的机器USB有些问题,所以打算用这台Mac.以往开发用Intellij Idea就够用,但是这次项目引用的jar包太多,遭 ...
- C++语言-08-命名空间
概述 命名空间通常作为附加信息来区分不同库中相同名称的函数.类.变量.命名空间的本质是定义一个范围,该范围即为一个上下文,一个上下文中通常不允许出现相同名称的函数.类.变量. 定义 定义格式 普通的命 ...
