版本管理与CVS
软件的开发和维护过程离不开版本管理和控制。随着项目复杂度的提高,开发人员数目的增多和工作独立性要求的提高,代码版本控制的作用显得越加重要,版本控制在团队开发中是必不可少的。
在众多的版本管理系统中,CVS(Concurrent Versions System,并发版本系统)是一个比较成熟且应用较广的版本控制软件
一、版本管理
⒈版本管理的任务
软件的开发和维护过程离不开版本管理。
对于一份文件,我们经常需要按不同的版本进行归档,或者从资料库里找出反映文件修改历史的不同版本。这样一方面可以使各个阶段的代码和文档变得井然有序,另一方面可以在当前版本出现问题的时候,找回先前的版本。
因此版本管理的任务主要是进行代码版本控制—管理新版本的生成和版本追踪。
⒉版本管理软件的工作原理
版本控制软件一般都采用客户机/服务器结构,由服务器端和客户端两部分组成:
u 服务器端用于保存各个项目的数据库;
u 客户端嵌入到开发工具中,由开发人员通过客户端对源代码进行并行管理。
版本控制软件主要完成的功能如下:
u当需要对某项目进行版本控制时,先在服务器端建立该项目的数据库,并保存被选定的项目源文件的第一个版本,客户端就可以为它添加其他版本了。
u如果权限足够大,开发人员既可以建立新的版本,也可以方便地获取服务器上文件的任意版本。
u 开发人员要进行文件的修改时,需要先进行检出操作,将文件取到本地。
u 当开发人员对“检出”到本地的文件进行了修改,需要保存到服务器端时,再进行“检入”操作,就使得修改过的文件成为当前的最新版本。
二、关于CVS
⒈CVS简介
CVS是Concurrent Versions System(并发版本系统)的简称,是一个开放源代码的项目。
CVS的工作思路是:它采用客户机/服务器体系,代码以及各种版本存储在中心服务器内,每一个个体开发者开发时首先从服务器上获得一份自己的拷贝,在此基础上进行开发,以避免直接影响服务器上的数据。开发者可以随时把自己的新代码提交给服务器,并通过更新获得代码的最新状态,保持与其他开发者的一致。
⒉CVS的基本概念
①资源库(Repository):CVS的资源库,亦称存储库,用于存储全部的版本管理中的文件副本。它是CVS服务器的根目录,是模块的集合。
② 模块(Module):CVS服务器根目录下的第一级子目录,通常用于存放一个项目的所有文件。Eclipse集成的CVS客户端将把一个项目和一个CVS模块相对应,实现版本控制。
③标签(Tag):用符号化的表示方法标志文件特定的版本信息。
④分支(Branch):用于存储对已有发布版本的修改,当用户修改一个分支时不会对当前开发版本或另外的分支产生任何影响。
⑤冲突(Conflict):当多个开发者同时参与一个项目时,常常会发生冲突。一般经常发生的情况是两个人想同时编辑一个文件的时候,如:开发者A做了改动,开发者B在A提交之前也做了改动,结果是:谁最后提交落实就会出现冲突,需要手工解决冲突后再提交。
三、Eclipse对CVS的集成
Eclipse内置了CVS支持,不需要使用其他客户端软件,只要建立一个CVS服务器,就可以使用这一强大的版本控制系统了。
Eclipse内置的客户端是作为一个单独透视图而实现的,通过“窗口”→“首选项”→“小组”,可以观察或配置选项细节。