以前和同学一起做东西的时候,一直用的版本控制工具是TortoiseSVN,今天发现Eclipse已经集成了CVS(Concurrent Version System)客户端来支持团队开发。虽然感觉比TortoiseSVN麻烦许多,但还是试着学习了一下。
l 先来介绍一下CVS的基本概念:
1. CVS简介
a) 允许存储某个文件的任意版本,并且可以存取其中的任意一个版本。
b) 支持多个开发者同时进行开发。
c) 支持自动合并,意味着多个开发者可以同时开发同一文件,而不必担心数据丢失。
d) 基于C/S模式。
e) 与平台无关。
2. CVS仓库
CVS把文件存储在CVS仓库,该仓库中存储了用于版本控制的所有文件和目录的副本。可以在CVS客户端使用CVS命令链接CVS服务器,取出CVS服务器的副本到本地,然后在本地对副本进行修改或者删除操作。
3. CVS基本开发流程
a) 导入项目:把本地文件导入到CVS服务器上,一般在项目仓库创建周期由项目管理人员进行。这个功能对应CVS标准命令中的Import命令,对应Eclipse中的Team->Share Project(在项目名上右击)。
b) 检出项目:导入之后,所有需要得到项目的开发人员就要将项目检出到本地。这个功能对应CheckOut命令,对应Eclipse中的New->Project->CVS->Projects from CVS
c) 本地开发:如果是新添加的文件或者是目录,需要将新添加的文件导入到CVS仓库,这个功能对应于Add命令,对应于Eclipse中的Team->Add to Version Control
d) 提交:在修改本地拷贝之后就可以执行提交操作,即提交到CVS服务器上成为一个新的版本。对应于CVS的Commit命令。在Eclipse中对应于Team->Commit功能。
l 下面我们通过具体例子来学习如何使用CVS的基本功能:
1. Windows下安装CVSNT Server,选择typical安装即可。顺利安装完毕,在控制面板中打开CVSNT Server,选择Repository configuration选项卡配置CVS仓库(只需要添加Location,Name,Description选项,其他使用默认值即可)。
2. 打开Eclipse,新建项目,项目类型从Other中选择CVS中的CVS Repository Location,打开以后界面如下:
图一:
Host填写CVSNT中的Server名,那么User和Password就应该对应本机的用户名和密码。注意Connection Type类型是pserver,Repository path填写CVSserver的name。
3. CVSNT的管理需要在控制面板中打开CVSNT,包括服务器的配置,兼容性设置等。具体的配置方法见相关文档。
l Eclipse客户端的使用方法
1. CVS控制台
在Eclipse控制台选择CVS即可切换到CVS控制台。控制台显示CVS命令信息、CVS服务器相关信息以及CVS错误信息。
2. CVS仓库浏览透视图
选择Window->Open Perspective->Othor打开该视图。该视图主要显示Eclipse中已经添加的CVS仓库,并且可以对CVS仓库进行浏览。如下图:
图二:
3. 导入项目到CVS仓库
如果想把已经创建的项目导入到CVS,可以直接在项目上右击,选择Team->Share Project菜单命令。如果系统没有任何仓库,则会出现CVS仓库定义界面,如图一。
4. 模块检出
如果CVS仓库已经存在,我们首先要做的就是从CVS仓库中检出模块到本地。有两种检出方式:
在新建项目向导中检出,需要在新建项目时,选择项目类型为CVS->Project from CVS;然后next选择导出的模块;next进入CVS检出方法选择界面;next进入CVS标签选择界面,单击Refresh Tags按钮,CVS仓库中的所有标签将被显示出来,可以从列表中选择需要检出的标签;最后单击finish按钮,至此新的项目被添加到工作空间。
从CVS Repository透视图中检出,Window->Open Perspective->Other打开Repository Exploring视图;在CVS Repository视图空白区域单击鼠标右键,选择New->Repository Location,进入CVS长裤定义界面,如图一;从左侧菜单选择要导入的节点单击鼠标右键,选择CheckOut,系统开始检出CVS代码并且在Eclipse工作空间中创建一个相同名称的项目。
5. CVS的版本控制
首先介绍一下分支(Branch)的概念。CVS默认有头分支。还可以创建分支,各个分支可以独立变化,互不影响,分支经过一段时间的演变以后,还可以合并一起。具体操作是,选择要创建分支的对象,然后右键Team->Branch,在对话框中设置分支名和版本名。
下面介绍版本(Version)的概念。版本从本质上讲就是对选中的资源做了一次快照,这样意味着系统有了一个快照备份,用户可以返回到执行快照时的状态。文件、目录和项目都可以创建一个版本,推荐对整个项目创建版本。创建版本的具体操作是,在目标项目右键Team->Tag as Version,进入定义界面后,设置Version tag即版本名,点击Ok完成操作。
版本或分支切换,可以右键Team->Switch to Another Branch or Version。
当提交之前或需要查看提交的历史记录时,需要对文件进行比较。这时,选择要比较的文件,右键选择Compare With。
版本之间的替换功能,选中被替换的文件,右键选择Replace With。
合并两个不同分支或版本,选中本地文件或者目录,右键Team->Merge。