*VSS*和*CVS*介绍
*VSS*的全名是(VisualSourceSafe),是微软公司开发的VisualStudio开发套件中
的版本控制部分,你可以通过从微软购买全套的VisualStudio套件,单独购买
SourceSafe来获得。因此SourceSafe拥有非常好的技术支持和非常详尽的技术文档。
*CVS*的全名是(ConcurrentVersionsSystem,并发版本系统),它是一个开源项
目,通过网站,你直接可以获取到新的程序或者
新的源代码,因此*CVS*的使用是完全免费的。由于*CVS*仅可以在Unix平台下使
用,在windows下出现了*CVS*NT服务器和Win*Cvs*
客户端等开源产品
功能
文件修改方式
*VSS*主要采用独占模式(check_out,modify,check_in),也可以使用
(mutil_check_out,modify,check_in,merge)模式。在SourceSafe使用中独占模
式使用的比较为成熟和普遍,独占模式要求每个人都必须在改动文件之前做捡出
(check_out)标志,并且标志了后的文件无法被其他人修改,即文件被独占了,
在完成了修改后要及时捡入(check_in),释放修改权。check_in和check_out也
是人们对版本控制开始的印象。
*CVS*采用了(update,modify,commit)工作方式。这是一种可以并发的版本控制
方式,即每个人都可以修改自己可访问的任意代码,代码不会被一个人单独占用,
两个人甚至多个人可以修改同一份代码,并且每个人的修改结果都不会被丢失。具
体的操作过程为:在修改代码之前先做update,以使本地的代码新,然后可以
修改代码了,修改完毕后,直接commit自己的修改结果。如果*CVS*没有发现冲
突,则代码可以直接进入*CVS*资源库,否则,*CVS*则标出冲突的文件的冲突部分
让你做合并。
文件历史
在这一点上*VSS*和*CVS*的功能都很近似,他们都可以保存了每个文件的变化历
史,并提供了一个自动的版本号,随时可以取出任何文件的历史版本。并和当前版
本做比较。都提供了自定义版本的label功能。检索历史和自定版本都非常的方
便。*VSS*还特别提供了对时间段,或者操作人的历史操作查询,使一个人一段时
间内对文件的操作一目了然。
项目版本管理
*VSS*并有直接对项目版本管理的支持,通过label来自定义一个版本号,可以解决
部分项目版本管理的问题,但这是远远不够的,当一个产品根据用户需求产生一系
列不同的项目版本时使用SourceSafe将非常难以管理。
*CVS*提供了比较完善的项目版本管理。*CVS*中可以把当前的工作定义成一个版
本,一旦生成版本了则版本中的数据被单独取出,处于版本中的文件将保持只读,
想获得一个项目的历史版本将轻而易举。同时,对于一个项目版本内部可以调整使
用不同的文件版本。
分支功能。
*CVS*和*VSS*都提供了建立分支和合并分支的功能,但在操作中*VSS*首先要做项目
共享,引入要分支的项目或文件然后做分支操作.*CVS*则是直接对文件或者项目做
分支,分支操作同时建立。
开发集成
*VSS*可以和VisualStudio中的其他开发工具比如VB,VC++等做到直接集成,毕竟
都是微软的产品么,同时由于*VSS*不光提供了图形界面也提供了命令行模式,所
以在Windows操作系统中的大部分其他开发工具都提供了对*VSS*操作的集成,只要
你安装了*VSS*的客户端。因此*VSS*在Windows平台下使用将会非常方便。
*CVS*本身是Unix系统上开发的,提供Unix上了命令行使用模式,因此和Unix上的
vi、Emacs可以直接和*CVS*一起工作,至于Unix系统下的图形环境的开发工具比如
eclipse,KDevelop和*cvs*集成都非常容易。本来在Windows平台上*CVS*的支持并
不好,但近一段时间,随着Win*CVS*易用性越来越好,Windows下的部分开发工具
已经提供了对Win*CVS*的支持,不过需要自己配置,而Windows下的Eclipse则直接
集成了*CVS*,开发中可进行*CVS*操作。从而使Windows下*CVS*使用也越来越方便了。
操作界面和配置管理
*VSS*在Windows下提供了单独的客户端和服务器端操作界面,界面和windows操作
系统风格一致,入门和使用都非常方便。即使被集成到别的开发工具中,它的使用
界面也基本一样。通过工具SourceSafeAdmin,用户管理,权限管理,系统配置非
常直观,基本不需要任何培训,直接看随程序自带的文档可以准确使用。配置工
具中包括了*VSS*数据的备份和恢复,系统自带文档相当详尽。
*CVS*的界面以命令行为主,在Unix平台下没有图形界面,部分图形的开发工具可
能内嵌*CVS*客户端,在Windows平台下你可以选择用*CVS*NT搭建服务器,用
Win*CVS*作为客户端。*CVS*服务端配置在任何平台下都需要通过命令来完成,配
置过程比较复杂。有时甚至要直接编写配置文件,同时,客户端方面的培植也有些
技巧。没有经过培训或者一段时间的研究和测试,无法正常使用*CVS*完成正常工
作和用户、权限的培植管理等工作。
安全和网络
*VSS*仅可在局域网内部使用,服务器仅作为一个文件服务器,不需要运行任何程
序或者起后台服务,但必须要共享一个可写的文件夹。这成为了目前局域网上容
易被病毒入侵的地方,必须定期做好病毒检查工作,安装病毒放火墙。安全性比较差。
*CVS*在局域网或者广域网内都可使用,作为服务器不需要共享任何资料,但必须
起服务,占用系统资源。客户端可以是任何不同平台,都是通过TCP/IP和特定的端
口来访问*CVS*服务器,有不同安全等级的访问协议可供选择。安全性强适用面广。
结论
SourceSafe适合在局域网范围内的,以Windows平台为主的中、小项目,以文件管
理为主要功能,使用方便,学习成本低,对服务器仅需要快速大容量的存储器也是
它的优势。
*CVS*可满足局域和广域不同的网络条件,提供不同级别安全性选择,在一台专门
服务器的配合下,客户可以使用任何平台开发项目。对于已经完成了开发过程进入
项目维护阶段,或者进入项目升级阶段的项目,可提供完善的项目版本管理支持。
不过在操作和使用上学习成本比较高。