版本控制软件提供完备的
版本管理功能,用于
存储、
追踪目录(
文件夹)和
文件的修改历史,是软件开发者的必备工具,是
软件公司的基础设施。版本控制软件的最高目标,是支持
软件公司的配置管理活动,追踪多个版本的开发和维护活动,及时发布
软件。
软件作用
简单点说,你在开发过程中,会不断发现新需求,不断发现
bug,如果不做控制,你的软件将永远不会发布,或今天一个版本,明天又是一个版本。
控制软件
Perforce,StarTeam--------〉入门级
0.GIT -----〉最流行
SVN
1.Clear case --------〉中坚级
3.Visual SourceSafe--------〉新秀级
4. SourceAnywhere --------〉中坚级
8.StarTeam --------〉元老级
9.RCS --------〉元老级
10.SCCS --------〉元老级
11.Hansky Firefly
12.Others(还有一些比较少见或某个公司专用的软件,如Seapine,JBCM等)
软件简介
1.Visual Source Safe(简称VSS)
VSS是美国
微软公司的产品,目前常用的版本为6.0版。VSS是
配置管理的一种很好的入门级的工具。
易学易用是VSS的强项,VSS采用标准的windows操作界面,只要对微软的产品熟悉,就能很快上手。VSS的安装和配置非常简单,对于该产品,不需要外部的培训(可以为公司省去一笔不菲的费用)。只要参考微软完备的随机文档,就可以很快的用到实际的工程当中。
VSS的配置管理的功能比较基本,提供文件的版本跟踪功能,对于build和
基线的管理,VSS的打标签的功能可以提供支持。VSS提供share(共 享)、branch(分支)和合并(merge)的功能,对于团队的开发进行支持。VSS不提供对流程的管理功能,如对变更的流程进行控制。
VSS不能提供对异地团队开发的支持。此外VSS只能在windows平台上运行,不能运行在其他操作系统上。 有软件提供商提供VSS
插件,可以同时解决VSS跨平台和
远程连接两个问题,例如
SourceAnywhere for VSS, SourceOffSite等。
VSS的安全性不高,对于VSS的用户,可以在文件夹上设置不可读,可读,可读/写,可完全控制四级权限。但由于VSS的文件夹是要完全共享给用户后,用户才能进入,所以用户对VSS的文件夹都可以删除。这一点也是VSS的一个比较大的缺点。
VSS没有采用对许可证进行收费的方式,只要安装了VSS,对用户的数目是没有限制的。因此使用VSS的费用是较低的。
微软不再对VSS提供技术支持。
2.Concurrent Version System(简称CVS)
CVS是开发
源代码的
配置管理工具,其源代码和安装文件都可以免费下载。
CVS是源于unix的版本控制工具,对于CVS的安装和使用最好对unix的系统有所了解能更容易学习,CVS的
服务器管理需要进行各种命令行操作。目前,CVS的客户端有winCVS的图形化界面,服务器端也有CVSNT的版本,易用性正在提高。
CVS的功能除具备VSS的功能外,还具有:
它的客户机/服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码;它的无限制的
版本管理检出(checkout:注1)的模式避免了通常的 因为排它检出模式而引起的人工冲突;它的客户端工具可以在绝大多数的平台上使用。同样,
CVS也不提供对变更流程的自动管理功能。
一般来说,CVS的权限设置单一,通常只能通过CVSROOT/passwd, CVSROOT/readers, CVSROOT/writers文 件,同时还要设置CVS REPOS的物理目录权限来完成权限设置,无法完成复杂的权限控制;但是CVS通过CVS ROOT目录下的脚本,提供了相应功 能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。
CVS是开发源码软件,无需支付购买费用。
同样因为CVS是开发源码软件,没有生产厂家为其提供技术的支持。如发现问题,通常只能靠自己查找网上的资料进行解决。
3.StarTeam
StarTeam是Borland公司的
配置管理工具,StarTeam属于高端的工具,在易用性,功能和安全性等方面都很不错。
StarTeam的用户界面同VSS的类似,它的所有的操作都可通过
图形用户界面来完成,同时,对于习惯使用命令方式的用户,StarTeam也提供命令集进行支持。同时,StarTeam的随机文档也非常详细。
除了具备VSS,CVS所具有功能外,StarTeam还提供了对基于数据库的变更管理功能,是相应工具中独树一帜的。StarTeam还提供了流程定制 的工具,用户可跟据自己的需求灵活的定制流程。与VSS和CVS不同,VSS和CVS是基于文件系统的
配置管理工具,而
StarTeam是基于数据库的。 StarTeam的用户可根据项目的规模,选取多种
数据库系统。
STARTEAM无需通过物理路径的权限设置,而是通过自己的
数据库管理,实现了类似WINDOWSNT的域用户管理和目录文件ACL控制。 StarTeam完全是域独立的。这个优势可以为用户模型提供灵活性,而不会影响到现有的安全设置。StarTeam的
访问控制非常灵活并且系统。您可以 对工程,视图,文件夹一直向下到每一个小的item设置权限。对于高级别的视图(view),访问控制可以与用户组、用户、项目甚至视图等链接起来。
StarTeam是按license来收费的,比起VSS,CVS来,企业在启动StarTeam进行
配置管理需要投入一定资金。
Borland公司将对用户进行培训,并协作用户建立配置管理系统。并对用户提供技术升级等完善的支持。
4.ClearCase
ClearCase是Rational公司的产品,也是目前使用较多的
配置管理工具。
ClearCase的安装和维护远比
StarTeam复杂,要成为一个合格的ClearCase的系统管理员,需要接受专门的培训。ClearCase提供命令行和图形界面的操作方式,但从ClearCase的图形界面不能实现命令行的所有功能。
ClearCase提供VSS,CVS,StarTeam所支持的功能,但不提供变更管理的功能。Rational另提供了ClearQuest工具提供 对变更管理的功能,与StarTeam不同,ClearCase后台的数据库是专有的结构。ClearCase对于windows和unix平台都提供支 持。ClearCase通过多点复制支持多个服务器和多个点的可扩展性,并擅长设置复杂的开发过程。
ClearCase的权限设置功能与
StarTeam相比,StarTeam有独立的安全管理机制,ClearCase没有专用的安全性管理机制,依赖于操作系统。
要选用ClearCase,需要考虑的费用除购买license的费用外,还有必不可少的技术服务费用,没有Rational公司的专门的技术服务,很难 发挥出ClearCase的威力。如现在网上虽有ClearCase的破解软件,但尝试应用的公司大多失败的缘故。另外,对于web访问的支持,对于变更 管理的支持功能都要另行购买相应的软件。
Rational公司已被IBM公司收购,所以有可靠的售后服务保证。
5.SVN
SVN全名Subversion,即版本控制系统。
SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。Subversion 是一个通用的系统, 可用来管理任何类型的文件, 其中包括了程序源码。
SubVersion:实现服务系统的软件。
TortoiseSVN:是SVN客户端程序,为windows
外壳程序集成到windows
资源管理器和
文件管理系统的Subversion客户端。
SVNService.exe:是专为 SubVersion 开发的一个用来作为 Win32 服务挂接的入口程序。
AnkhSVN:是一个专为Visual Studio提供SVN的
插件。
6.SourceAnywhere
SourceAnywhere系列是由加拿大公司Dynamsoft开发的,有三个产品,SourceAnywhere for VSS, SourceAnywhere Standalone, SourceAnywhere Hosted.
SourceAnywhere for VSS是微软推荐的远程和跨平台访问VSS的工具。SourceAnywhere Standalone界面风格与VSS相似,但它是基于SQL Server的,且有其它一些安全和
远程访问机制,可以
广域网中使用;支持把数据从VSS库中导入SourceAnywhere。SourceAnywhere Hosted是SourceAnywhere Standalone的托管服务SaaS。
7.Git
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理.
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 最近就迁移到 Git 上来了,很多 Freedesktop 的项目也迁移到了 Git 上。
总结
windows平台进行支持,建议作为项目
配置管理的入门时采用的工具;CVS的安全性和
版本管理功能较强,可以实现异地开发的支持,但CVS安装和使用 多采用命令行方式,学习曲线高,同时不提供对变更管理的功能,对于小型团队,可以采用CVS进行管理。ClearCase功能完善,安全性好,可以支持复 杂的管理,但学习曲线和学习成本高,需要集成ClearQuest才能完成完整的配置管理功能;
StarTeam很好地平衡了功能性、易用性和安全性,同 时集成了版本管理、变更管理和
缺陷管理。对大型的团队开发和建立组织级的配置管理体系,建议采用ClearCase和StarTeam作为配置管理工具。
以上几种工具的总结如下:VSS的使用简便易学,但VSS的功能和安全性较弱,且只对可以显示开机时所有启动的项目。