VSS和CVS的比较

VSS和CVS的比较
预览:

随着计算机应用范围的日益广泛深入,应用软件的规模及复杂程度日趋大型化、复杂化,这就导致软件开发的方式也从早期的单兵作战式或手工作坊式渐渐转变为集团化、工厂流水线式的团队协作开发方式。在这种开发模式中会遇到一些非常棘手的问题:

1.需要将整个软件版本恢复到以前的某一时间的状态。

2.控制某一程序在同一时间只能一个开发人员修改。

3.限制随意修改程序。

4.对每个开发人员编写的程序质量进行评估

...

版本管理系统则可以完美的解决以上问题。版本管理系统有很多。复杂而昂贵的ClearCase,性能良好的HanskyFirefly和目前最流行的VSS和CVS。

VSS和CVS介绍

VSS的全名是(VisualSourceSafe),是微软公司开发的VisualStudio开发套件中的版本控制部分,你可以通过从微软购买全套的 VisualStudio套件,单独购买SourceSafe来获得。因此SourceSafe拥有非常好的技术支持和非常详尽的技术文档。

CVS的全名是(ConcurrentVersionsSystem,并发版本系统),它是一个开源项目,通过http://www。cvshome。org/网站,你直接可以获取到最新的程序或者最新的源代码,因此CVS的使用是完全免费的。由于CVS仅可以在Unix平台下使用,在windows下出现了CVSNT(http://www。cvsnt。org/)服务器和WinCvs(http://www。guicvs。org/)客户端等开源产品

文件修改方式

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将非常难以管理。