CVSNT和WINCVS的安装及使用

来源:互联网 发布:淘宝怎么看粉丝数 编辑:程序博客网 时间:2024/05/03 11:59

CVSNTWINCVS的安装及使用

 

CVS(Concurrent Version System)分为NT下的和UNIX下的。这里只介绍NT下的安装及使用。

CVS 的基本工作思路是这样的:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。由仓库管理员统一管理这些源程序。这样,就好象只有一个人在修改文件一样。避免了冲突。每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何修改首先都是在本地进行,然后用 cvs 命令进行提交,由 cvs 仓库管理员统一 修改。这样就可以做到跟踪文件变化,冲突控制等等。

 

一、             安装:

首先下载CVSNT(服务器),WINCVS(客户端),安装CVSNT,过程很简单,不用多说了。

1、建立两个空目录,一个是CVSROOT,一个是CVSTEMP。进入开始菜单=> cvsnt => Service control panel,选择Repositories标签,设置CVSROOT目录(此步实际是建立CVS仓库)。再选择Advanced标签,选中前三个选项。选择Temporary目录CVSTEMPCVSNT配置完成。

2设置权限:建立CVS用户,实际就是WINDOWS用户,分配在一个组里面(比如说,USER组)。然后设置CVSROOT的用户访问权限,在此目录上点右键,选择属性,选择安全标签,设置权限。

3、安装WINCVS。执行WINCVS,进入菜单Admin => preferences 配置客户端。在Authentication中选择pserverPath中写CVSROOT的路径(我的是d:/cvsroot;Host address中输入服务器的地址(如:192.168.1.59)。在User Name中输入用户名。确定即可。
然后通过菜单Admin=> login登录,输入密码,登录成功。会显示如下信息***** CVS exited normally with code0 *****如登录失败,则显示如下信息***** CVS exited normally with code 1*****

WINCVS中的字符串含义如下:

1、

“pserver” 是最常用的一直cvs远程访问方式;

2、

“username” 是指客户端在服务器上的用户名,也就是我们在上面的“配置cvs帐号”一结中讲到的;

3、

“hostname” 是cvs服务器的主机名,也可以是它的IP地址;

4、

“cvs仓库路径” 是一个cvs仓库所在的目录,用于区分你要访问的是哪个仓库(因为一个cvs服务器上可能有多个不同仓库)。

4、建立项目,在WINCVS的地址栏中选择项目所在的目录,然后导入项目,最后会要求你输入项目模块的名字(比如:cspicture),导入成功后,其它用户就可以检出此项目了,然后在检出的项目的基础进行操作。

 

二、             WINCVS使用:

WINCVS 的功能很多,其中最基本的有LoginLogoutImportCheckoutCommit

UpdateAddDel

首先我们要在客户端创建一个空文件夹,用于存放从CVS一检出来的项目文件,登录WINCVS,然后检出项目到刚建立的目录下。

然后开始对项目进行操作。

1、  各项操作说明:

a)         登录操作:登录服务器,开始CVS操作。

b)        登出操作:退出服务器,CVS操作结束。

c)        导入操作:往服务器上导入项目。

d)        检出操作:从服务器上检出项目。

e)         提交操作:把修改过的文件传到服务器上。

f)         更新操作:从服务器上获取最新的文件。

更新操作的复选框的含义:

u       1.  Checkout file to standard output,检出文件到标准输出

u       2.  Do not recurse into sub-folders,不递归子目录,只更新当前目录下的文件

u       3.  Reset any sticky date/tag/'-k' options重置所有的粘贴性的日期/标示/-k选项,删除分支/标签,取得最新的版本,用于从分支切换会主干

u       4.  Create missing directories that exist in the repository,创建在仓库丢失的目录

u       5.  Get the clean copy,获得干净的拷贝,本地文件修改错误时,可以把服务器上的文件取回覆盖本地文件(用于本地文件修改错误的情况).

g)        增加操作:向服务器上增加新的文件。

h)        删除操作:删除服务器上的文件。

2、  其它操作及规则:

a)         对普通用户来说,最重要的操作是后四个,update,commit,add,del。但应注意的是每一次操作都要先Update要修改的文件,看看与本地的是否有冲突,如果有冲突,则要进行适当的修改,再Commit,如果没有冲突,就可以直接Commit了。在提交的时候最好加上相应的注释。

b)        在增加文件时,要区分文件的类型而选择不同的增加操作,按普通文本格式文件,二进制格式文件和unicode编码格式文件进行增加,避免对文件造成伤害。而在WINCVS的界面上也会根据文件格式的不同而显示不同的符号来区别。

c)        WINCVS中,红色的文件表示修改过的文件,需要更新提交的。带问号的文件表示服务器上还没有的文件,需要增加的。带有黑色小对号的目录是服务器上已有的,不带的表明服务器上还没有此目录。

d)        WINCVS中的VIEW菜单里还有两个过滤设置,通过选择file filter项可以过滤出想看的文件(比如说,过滤出修改过的文件,或者二进制文件等等)。

e)         查看文件的上传记录:在文件上点右键,选择倒数第三项,Graph Selection(快捷键是ctrl + G)来查看。可以查看版本号,上传人(author),上传时间等。还可以按住ctrl键来选择两个版本号,进行版本的比较操作。也可以通过选择相应的版本号来得到此版本的文件

f)         固定版本,当commit一个文件时,可以指定一个固定的版本。在对话框Commit settingsCommit options选项卡中,选中"Force revision/branch"复选框,并在后面的组合框中输入一个版本号.

g)        CVS服务器取回某个程序的某个版本的操作,在Update settings对话框的Update options选项卡中 选中Retrieve rev./tag/brain复选框,并在后面的组合框中输入某个以前的版本号.

三、WINCVS的高级应用

1、  统一版本

在开发过程中,不同文件的修改情况不一样,形成各个文件的版本都不同。见下图。有的文件版本为1.6,有的为1.3,有的为1.2, 等等。


 

2、  创建标签(Tag

标签(Tag),是CVS中对文件版本的一种文字描述,使用它的原因是它能够对版本进行有意义的表述,在版本控制中可以方便地存取。 例如,在开发过程中,某文件(或者整个Module)达到了稳定状态,此时它的版本号假定为2.5,我们可以对这个文件(或者整个Module)加一个Tag,名字叫”stable”,作为一个里程碑的标志。

 

3、  使用分支

为什么要创建分支?

软件项目开发过程中充满了各种不确定性,有时我们需要试探,有时我们需要分心去照顾从前的版本。例如,下面是两个典型的例子:

1) 软件已经达到了一个相对稳定的状态。下一步是想试验加入一种新功能(新特征,新算法等),但是对它没有信心,担心加入新内容之后,系统变得不稳定,希望能方便地回到目前的稳定状态。当然,如果新内容加入之后,效果不错,也希望在这个基础上继续开发。应该如何操作呢?

2) 软件1.0已经发布了,目前的工作已经集中在版本2.0。但是,这时传来消息,版本1.0有一个严重的Bug,请问现在该怎么办?

在上述情形下,可通过创建分支(Branch)来处理。

分支是什么呢?版本控制系统的一个基本功能,就是把某些版本的变化与开发主线分离起来。与开发主线分离的开发活动就叫分支(Branch)。分支能够解决上面的两个问题。

创建分支的方法:

1)选定要创建分支的文件(或者子目录、甚至是整个Module

2)选择主菜单Modify下的create a branch

3)在create branch对话框中,先钩上“Check that the files are unmodified before branching”,再在“new branch”编辑框中,填写分支名称。在我们的例子中,我们选择了一个叫GuiButton.cpp的文件,来示范分支操作。 其实对于子目录和整个Module,情形是类似的。我们创建的分支名叫”try_branch”。见下图。分支名称字符串必须符合与tag一致的要求,具体见本章3.2节。

4)按“确定”按钮。这样,新的分支就创立了。

 

4、 生成项目的ChangeLog

所谓Changelog,就是一个文件,它以文本的方式,按日描述一个Module的变化历史。Changelog对开发非常有用,因为有了它,我们对项目每天的改动一目了然。