UML软件工程组织

 

 

使用CVS进行版本控制实战
 
2008-09-05 来源:IT168 Amigo
 

CVS的全称为Concurrent Version System(并行版本系统),主要用于项目的版本管理和协同开发。

说明:本例的CVS的客户端和服务器端都装在同一台机上。

一. 服务端CVSNT篇

1. 安装与配置

下载地址:http://www.cvsnt.org

本文下载的是当前的最新版2.5.03。

双击下载得到的cvsnt-2[1].5.03.2382.msi文件,开始进入安装,点击“运行”按钮,进入安装的欢迎界面,接着点击“Next”按钮,进入是否接受用户协定页面,用户勾选“I accept…”选择,接受用户协定后,点击“Next”按钮,进入选择安装模式页面,如下图所示:

在此存在三种安装模式,即典型、自定义和完全安装,笔者选择的是典型安装,选择后点击“Next”按钮,进入安装准备页面,如下图所示:

在该图中点击“Install”按钮开始进入安装,安装完成后弹出安装完成页面,点击安装完成图的“Finish”按钮完成安装。安装完成后,会提示用户是否现在就重启系统来使安装生效,如下图所示:

点击“Yes”按钮重启系统。

安装完成后,还需要配置CVS的知识仓库,读者可以首先在E盘下建立CVS目录,用来作为CVS的知识库。通过“程序”-> CVSNT -> CVSNT Control Panel进入CVSNT的控制面板,点击“Repository configuration”页签,点击“Add”按钮,弹出服务端参数设置页面,在location中选择之前建立的知识仓库目录,内容如下所示:

点击“OK”按钮,完成CVS知识仓库的建立。此时我们打开E:/CVS文件夹,可以看到在该目录夹下被新建立了一个CVSROOT目录。

当不同的cvs客户端连接CVS时,考虑到兼容性等问题,读者还需要切换到Compatibility标签,将Response as cvs 1.11.2 to version r选项勾上。

为了测试CVSNT是否成功,我们可以在命令行下输入CVS命令,如果弹出如下信息,则表示安装成功:

读者若想查看所安装的CVSNT的版本信息,可以通过输入cvs version,本文安装的版本为2.5.03。

2. CVS的分布

CVS 是典型的 C/S 结构的软件,因此它也分成服务器端和客户端两部分。如下图所示:

3. CVSNT的基本工作思路

在一台服务器上建立一个知识仓库,仓库里可以存放许多不同项目的文件。

每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何修改首先都是在本地进行,然后用 CVS 命令进行提交。

仓库概念如下图所示:

4. 常用命令和语法

在CVSNT中,有很多常用命令,例如添加CVS用户、将CVS用户绑定到操作系统、登录CVS、检出(check out)文件或目录、提交文件或目录、删除文件或目录等,将本小节中,我们在本小节中将分别进行讨论。

为了能够进行添加和修改用户等等的操作,还需要设置CVS的资源库,在此我们需要设置CVSROOT环境变量,进入“我的电脑”-> “高级”-> “环境变量”,在系统变量中设置名为CVSROOT的环境变量,在本文中,CVSROOT变量的值设置为:E:\CVS。

注意:在设置完成后,为了使设置生效,需要在服务中重启CVSNT的两个服务:CVSNT Dispatch service 2.5.03.2382和CVSNT Locking Service 2.5.03.2382。否则在下面的新增CVS用户等步骤中会出现没有设置CVSROOT的错误。

1)新增CVS用户

命令为:cvs passwd -a <cvs用户名>

例如,新增一个用户名为AmigoXie的用户,可在命令行输入如下语句:

cvs passwd -a AmigoXie

按下Enter键后,在命令行中输入设置的密码,笔者在此处输入为:19821121,按Enter后再输入确认密码,

2)绑定CVS用户到操作系统

命令为:cvs passwd -r winUser cvsUser

例如,将在1)中建立的CVS用户AmigoXie绑定到操作系统用户AmigoXie,命令为:cvs passwd -r AmigoXie AmigoXie,按下Enter键后,提示输入新密码和确认密码,输入后,即完成了绑定CVS用户到操作系统的操作。

3)取消CVS用户到操作系统的绑定

命令为:cvs passwd -R cvsUser

例如,读者输入命令:cvs passwd –R AmigoXie,按下“Enter”键后输入新密码和确认密码,即完成了CVS用户AmigoXie到操作系统的绑定。

4)将用户状态置为无效

命令为:cvs passwd -x cvsUser

例如,读者输入命令:cvs passwd -x AmigoXie,按下“Enter”键,即完成CVS用户AmigoXie的状态改变。

5)删除某用户

命令为:cvs passwd -X cvsUser

例如,若读者想删除名称为AmigoXie的CVS用户,在命令行下输入如下命令:

cvs passwd -X AmigoXie

按下Enter键后,会出现成功删除该用户的提示信息。

6)浏览CVS的模块信息

命令为:cvs ls

在命令行下输入cvs ls,可看到CVS当时的模块信息,至少包括一行记录,即CVSROOT。

7)从服务器取出项目和文件

命令为:cvs checkout projectname

例如,我们想要取出CVSROOT项目,可在命令行中输入:

cvs checkout CVSROOT

按下“Enter”键后,在命令行中会出现各文件的取出信息。该命令可将最新版本的源代码导出到相应目录汇中(在此进入的是C:\Documents and Settings\AmigoXie目录,所以CVSROOT被导入该目录中)。

8)更新CVS的文件或项目

命令为:cvs update file_name

其中file_name可以不指定,不写时表示同步所有子目录下的文件。我们首先在E:/CVS目录下建立CVSProject目录,同时通过命令set cvsroot=:sspi:localhost:E:/CVS/CVSProject将其设置为CVS的module,设置成功之后,在命令行中运行cvs ls,可看到除了CVSROOT外,多了CVSProject这个module。我们通过7)中的checkout命令(cvs checkout CVSProject)将其取出。此时在命令行中输入cvs update,即可完成该工程的更新操作。

9)添加文件或目录到CVS服务器

命令为:cvs add new_file_or_folder

我们首先在我们下载的CVSProject目录下建立一个amigo目录,和一个amigo.txt文件,在命令行中进入C:\Documents and Settings\AmigoXie\CVSProject目录后做如下操作:

在上图中可以看到文件和目录添加成功的信息,此时我们进入E:\CVS\CVSProject目录,可看到多了amigo目录和amigo.txt文件。

10)添加文件或目录到CVS服务器

命令为:cvs commit -m "comments" file_name

我们修改C:\Documents and Settings\AmigoXie\CVSProject目录下的amigo.txt文件,在该文本文件中加上内容:amigo。此时在命令行中输入:

cvs commit -m "修改后的文件" amigo.txt

可看到运行结果如下:|

此时进入E:\CVS\CVSProject目录,可看到多了amigo.txt,v文件,查看文件内容时可以看到该文件中记录了更新信息。

11)查看文件版本信息和修改信息

命令为:cvs log file_name

例如,在命令行中输入cvs log amigo.txt,可在命令行中看到该文件的修改信息,以及修改时的注释等信息。

12)版本比较功能

命令为:cvs diff file_name

查看当前文件和库中文件的区别可用如上的命令,例如修改amigo.txt文件后运行cvs diff amigo.txt命令,可在命令行中看到相关的修改信息。

查看文件不同版本的区别,可用类似语句:

cvs diff –r 1.1 –r 1.2 file_name

13)删除CVS文件或目录

命令为:cvs rm –f file_name

cvs commit -m "reason to delete" file_name

例如,我们在命令行下输入如下信息,可删除在10)中建立的amigo.txt文件,如下图所示:

二. 客户端WinCVS篇

WinCVS是CVS的一个客户端程序,它以CVS作为基础,它运行在Windows上,在其上构造了功能强大的GUI,使得Windows平台上的CVS用户能非常容易的进行协同工作。它可以用来在Windows上登录CVS服务器,然后进行一些CVS相关的操作与管理。

1. 安装与配置

英文版下载地址:http://sourceforge.net/project/showfiles.php?group_id=10072

读者可以自行下载WinCvs 2.1.1版本,笔者下载的是WinCVS的中文版1.3版,下载地址为:http://www.8848software.com/wincvs/。

在安装WinCVS中文版前,需要首先下载python,下载地址为:http://www.python.org/download/,笔者下载的是2.1.3版本。

注意:WinCVS仅支持python2.2.3以下的版本,其它更新的版本会出现一些问题,请注意是否下载了正确的版本。

点击下载的wincvs.exe文件,并按照安装步骤完成安装后,打开WinCVS,操作界面如下所示:

我们还需要在WinCVS中进行登录配置,点击“管理”-> “设置”,弹出设置页面,笔者的设置如下:

点击“确定”按钮设置完成后,点击“管理” -> “登录”,在弹出的登录设置页面中点击“确定”按钮,接着弹出口令认证页面,输入用户AmigoXie的密码信息19821121,点击“确定”,若在控制台的末尾看到信息“***** CVS exited normally with code 0 *****”,则表示登录成功。下载下来的项目默认放在C:/tmp目录下。

2. 常见操作

1)新增文件或目录

在C:/tmp/CVSProject目录下新建doc目录,在WinCVS中点击左边的C:/tmp/CVSProject文件夹,在右边的显示框中可以看到该新增的文件夹,选择doc文件夹后点击红色的新增按钮,即完成该文件夹的新增。

接着在doc目录下建立sterning.txt文件,在WinCVS中进入doc目录后可看到如下信息:

点击新增按钮后,状态如下:

2)提交文件或目录

在1)中选择sterning.txt后,点击右键,选择“提交选项”,出现输入注释信息框,点击“确定”按钮,即完成了目录的提交。目录提交方式与该操作方式一样。

3)更新文件或目录

例如,在C:\tmp\CVSProject\doc目录下删除sterning.txt文件后,在WinCVS中选择doc目录,右键选择“更新选项”,即可sterning.txt文件重新被下载到doc目录下。

4)版本比较

依照1)和2)中的步骤在doc目录下新建amigo.txt文件,并将其提交到CVS,文件内容为amigo,同时修改C:\tmp\CVSProject\doc下的该文件(添加新行,新行内容为sterning)。在WinCVS中选择该文件后,点击右键选择“比较选项”,在弹出的“比较设置”框中点击“确定”按钮,即可看到客户端的版本同服务器上的最新版的比较信息,如下图所示:

在上图中清楚的显示了本地(右边)比服务器上的最新版(左边)多了一行。

5)删除文件或目录

例如,在WinCVS中选择需删除的一个或多个目录,点击操作栏的黑色的删除选项,操作成功后这些被删除的文件状态为红色的叉叉,选中这些文件,选择“提交选项”,即可完成删除操作。

本质上CVS是不会删除任何文件和目录的,即使是执行了以上操作,删除了某些文件,远端CVS实际执行的是将提交删除的文件放到了一个叫【Attic】的目录下,因此,这些被删除的文件是可以通过一定的方法恢复的。

6)给项目| 模块打上标签

在项目开发中的一些阶段性等时刻,可以通过WinCVS来给项目或模块打上标签,方法如下:

选择CVSProject工程,选择操作栏靠左的“T”(创建标签)按钮,弹出“创建标签设置”框,填写标签名等信息,例如输入的标签名为branch-release-1-1,点击“确定”按钮,可给该版本的文件都打上了branch-release-1-1的标签。

7)导入项目|模块到CVS

在C:\tmp目录下建立Test文件夹,并在该文件夹下建立amigo.txt文件,在WinCVS左边操作栏中选择C:\tmp\Test文件夹,点击右键选择“导入项目|模块”,弹出“导入过滤器”框,选择“继续”按钮,弹出“导入设置”框,可采用默认设置,点击“确定”按钮即完成该项目或模块的导入。

8)从CVS上检出项目|模块到本地路径

在WinCvs中选择某个文件后,点击右键,并选择“检查项目|模块”选项,弹出检出设置框,在“检出设置”页签中填写相关信息,笔者填写的信息如下所示:

三.总结

在本文中,笔者详细讲述了CVSNT和WinCVS的知识,包括两者的安装配置、CVSNT的常用命令、WinCVS的常见操作等知识,读者通过阅读本文,可以在应用CVS进行版本控制时能够更加的熟练自如。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号