(1)Visual Source Safe(VSS)
VSS是美国微软公司的产品,目前常用的版本为6.0版。VSS是配置管理的一种很好的入门级的工具。
易学易用是VSS的强项,VSS采用标准的Windows操作界面,只要对微软的产品熟悉,就能很快上手。VSS的安装和配置非常简单,对于该产品,不需要外部的培训(可以为企业省去一笔不菲的费用),只要参考微软完备的随机文档,就可以很快地用到实际的工程当中。
VSS的配置管理的功能比较基本,其提供文件的版本跟踪功能,对于build和基线的管理、VSS的打标签的功能可以提供支持。VSS提供share(共享)、branch(分支)和合并(merge)的功能,对团队的开发进行支持。VSS不提供对流程的管理功能,例如对变更的流程进行控制。用VSS进行版本控制,如果只需要读取某一资源文档,可以直接使用get命令将文件取出。
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的版本控制工具,对UNIX的系统有所了解才能更容易学习CVS的安装和使用。CVS的服务器管理需要进行各种命令行操作。目前,CVS的客户端有winCVS的图形化界面,服务器端有CVSNT的版本,易用性正在提高。
CVS除具备VSS的功能外,它的客户机/服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码;它的无限制的版本管理检出(checkout)的模式避免了通常的因为排它检出模式而引起的人工冲突;它的客户端工具可以在绝大多数的平台上使用。同样,CVS也不提供对变更流程的自动管理功能。
一般来说,CVS的权限设置单一,通常只能通过CVSROOT/passwd、CVSROOT/readers、CVSROOT/writers文件,同时还要设置CVSREPOS的物理目录权限,无法完成复杂的权限控制;但是,CVS通过CVSROOT目录下的脚本,提供了相应功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。
CVS是开发源码软件,无须支付购买。同样,因为CVS是开发源码软件,没有生产厂家为其提供技术的支持。如发现问题,通常只能靠自己查找网上的资料进行解决。
(3)ClearCase
ClearCase是Rational公司的产品,也是超大型的项目团队开发过程中使用较多的配置管理工具。ClearCase的安装和维护相对复杂,相关管理人员需要接受专门的培训。ClearCase提供命令行和图形界面的操作方式,但从ClearCase的图形界面不能实现命令行的所有功能。
ClearCase提供VSS、CVS所支持的全部功能,但不提供变更管理的功能。Rational另外提供了ClearQuest工具,提供对变更管理的功能。ClearCase对Windows和UNIX平台都提供支持。ClearCase通过多点复制支持多个服务器和多个点的可扩展性,并擅长设置复杂的开发过程。权限设置方面,ClearCase没有专用的安全性管理机制,依赖于操作系统。
要选用ClearCase,需要考虑的费用除了购买license的费用外,还有必不可少的技术服务费用。如果没有Rational公司的专门的技术服务,则很难发挥出ClearCase的威力。现在网上虽有ClearCase的破解软件,但尝试应用的公司大多以失败告终。另外,对于Web访问的支持、对于变更管理的支持功能,都要另行购买相应的软件。Rational公司已被IBM公司收购,所以有可靠的售后服务保证。
(4)Subversion(SVN)
Subversion是一个自由、开源的版本控制系统,是近年来崛起的版本管理软件系统。目前,在开源软件配置管理领域占有非常大的市场比例。Subversion是一个通用系统,可以管理任何类型的文件集,相对于的RCS、CVS,其采用了分支管理系统。Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行,开发进度会更加迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量,如果出现不正确的更改,只要撤销那一次更改操作即可。
Subversion标准的目录结构中有三个分支:trunk是主分支,用于日常开发;branches是发布分支,存储release版本;tags是标记分支,属性状态为只读,存储阶段性的基线版本。
Subversion在分析市场上很多主流版本管理工具的基础上,加入不少新的元素,使其能更加符合市场的主流、需求。其新特性主要体现在如下几个方面。
•目录的版本化(www.xing528.com)
√将目录名以版本号的形式体现。
•基于版本的复制、删除和重命名
√无论复制、删除还是重命名,都会打上版本号。
•元数据操作版本化
√允许任何元数据附加在文件或目录中。
√提供对修订版附加任何键/值属性的方法。
•混合追踪
√1.5版本开始加入了混合追踪功能。
•文件锁定
√支持文件锁定,当多用户同时编辑同一资源文件时,将发出警告。
•Apache网络服务支持,基于WebDAV/DeltaV协议
√基于HTTP的WebDAV/DeltaV协议进行网络通信。
√Apache网络服务器提供网络存储站点服务。
•可执行标签
√当一个文件是可执行的时候,Subversion会提示。
•独立进程模式
√Subversion可以运行在独立模式下。
•只读的存储镜像
√提供主服务器资源同步到子存储服务器。
以上四种版本管理工具各有千秋,各有使用的场合。VSS的使用简便易学,但VSS的功能和安全性较弱。CVS的安全性和版本管理功能较强,可以实现异地开发的支持,但CVS安装和使用多采用命令行方式,学习曲线高,同时不提供对变更管理的功能,对于小型团队,可以采用CVS进行管理。ClearCase功能完善,安全性好,可以支持复杂的管理,但学习曲线和学习成本高,需要集成ClearQuest才能完成完整的配置管理功能。对超大型的团队开发和建立组织级的配置管理体系,可考虑采用ClearCase作为配置管理工具。SVN集当前各版本管理工具的新特性的功能优势明显。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。