UML软件工程组织

 

 

CVS配置管理
 
作者:黄晔 来源:bokee.com
 

cvs基础

1.查看CVS版本

查看本机是否装有CVS,查看版本信息: cvs –v

2.创建仓储

把CVS服务的数据中心建立在本机D:\CVSROOT路径下:cvs –d d:\cvsroot init

3.创建项目

创建一个名为sesame的项目,从本机D:\from文件夹下面将数据传入到CVS中心数据库。

首先切换到要上传的数据路径D:\from

cvs –d d:\cvsroot import –m “” sesame sesame initial

可以从资源浏览器中看到,此时CVS的数据中心已经将数据导入。

4.检出

CVS中心中已经包含了数据,当我们需要操作数据时,需要将中心数据拷贝一个副本到本地(D:\localcvsroot),即数据导出(Check Out)

首先切换到副本路径D:\localcvsroot

cvs –d d:\cvsroot co sesame

此时,本地副本已经被拷贝创建起来。

5.修改与查看状态

现在,我们对已经本地副本中的数据信息修改(添加了一行“1111”),进入副本路径d:\localcvsroot\sesame,我们可以在状态查看中发现本地文档已经被修改。

cvs status 1.txt

通过cvs diff命令,我们可以看到修改后原版本与现版本的差别:

cvs diff 1.txt

甚至我们将这种按行进行这种差别对比

cvs diff –side-by-side 1.txt

6.提交

为了将本地副本的变化提交到CVS数据中心,我们需要cvs commit这些变化。-m后的参数是提交时的注释,请注意,随便填写什么并不重要,但是请一定输入一些注释^_^

cvs commit –m “First commit by Huangye”

完成了以上操作之后,我们可以查看针对刚刚修改的文件的cvs日志信息

7.更新

为了说明更新,我们将CVS中心数据库检出到本地另外一个名为aladdin的副本。

cvs –d d:\cvsroot co –d aladdin sesame

可以看到,在本地路径下,出现了一个与sesame平级的副本aladdin

首先更新再次修改sesame中的1.txt文件,再次提交,可以发现,CVS中心服务器与sesame保持了一致,但是aladdin则不一致,需要手工更新。

cvs update

cvs发现只有1.txt被更新了,则只更新了本地副本中的1.txt文件。

8.冲突

我们分别对sesame和aladdin中的1.txt做了修改,并比较了他们与现有数据中心的差别。

可以看到,sesame修改了文件的第一行,而aladdin修改的则是最后一行。

我们先提交sesame中的修改。

然后再提交aladdin中对同一个1.txt文件的修改,这是CVS告诉我们有冲突错误:

按照CVS的建议,我们首先更新了aladdin中的1.txt文件,再查看下更新后aladdin中副本状态。

真是神奇!CVS并没有简单的覆盖我们的修改,而只是修改了不同的部分(第一行)!

这正是CVS中乐观锁的功劳。由于冲突双方修改的并不是同一个地方,所以CVS可以同时保留双方的修改。

此时,我们就可以将aladdin中的数据更新到CVS中心了

使用wincvs

1.服务端设置

Cvs的常用方式,是将cvs服务端假设在NT,Linux,AIX等主机上,在客户端使用wincvs进行访问。

本文中的cvs服务器实验环境是假设在NT之上,即采用了cvsnt版本。在设置客户端之前,我们需要设置一下cvs的Repositories选项。即为数据中心创建一个访问名称。

2.Wincvs设置

本例使用wincvs1.3,在使用wincvs之前,还需要安装Python-2.2.3和tcl832来提供必要的支持。

当我们的cvs服务端ip为10.164.128.33时,采用pserver方式的首设置如下所示:

当客户端的接受路径为D:\localcvsroot时,我们需要在选项卡中指定。

确定后完成设置。在菜单栏中选择登陆,输入密码,可以在输出栏中看到:

cvs -d :pserver:administrator@10.164.128.33:/cvsroot login

Logging in to :pserver:administrator@10.164.128.33:2401/cvsroot

***** CVS exited normally with code 0 *****

3.项目检出、更改与提交

在wincvs中将当前路径切换到D:\localcvsroot,右键左边“项目|模块”视图,选中“检出”。

在弹出对话框中指定cvs数据中心项目(模块)sesame,同时指定检出到本地的路径。

此时,cvs中心的数据就被检出了,当我们在本地修改以后,文件会置为红色。

在wincvs上的操作,不论是提交还是查看差异,都要更加人性化。

4.项目/模块导入

当我们要将本地的一个test目录下文件导入CVS中时。首先在wincvs下选定test路径,通过“导入项目/模块”,指定我们其在远程机器上的模块名,选择适当的标签和日志信息,即可将本地数据导入CVS数据中心。

注意:此时虽然导入成功。但是本地文件并不是从服务器中检出的,所以可以随便删除,而不会影响cvs中心数据。

开发环境中的CVS

CVS除了对文档有很好的版本控制,还可以集成在程序开发环境中,对代码也执行同样良好(甚至是更高效)的版本控制。本文采用Eclipse作为演示环境。

首先,需要在eclipse的cvs视图中指定连接的cvs中心服务器。

指定完成后,可以在仓储视图中看到当前cvs中心数据。

在具体应用项目视图中,我们将项目与当前已有的仓储关联起来。

确定要绑定的资源后,执行提交命令。

为项目提交输入注释不是逻辑必须的,但这是一个良好、乃至于不可或缺的习惯。

当项目提交完成后,我们可以发现整个应用项目已经与原先有了很大不同,每一个子包,甚至与每一个文件都可以被单独的检出,更新或者提交!

 

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

京公海网安备110108001071号