设为首页 加入收藏

TOP

介绍一下CVS的用法?(一)
2014-11-24 00:58:25 来源: 作者: 【 】 浏览:18
Tags:介绍 CVS 用法

CVS 是进行Open Source 开发和管理的一个应用程序。使得程序开发者能够很好的控制
软件的颁布,便于开发组间的协调。


CVS 的安装 (从http://www.cvshome.org获取最新版本的CVS)
CVS Server:
下载:
一般选择安装在 linux上。你可以从cvshome(http://www.cvshome.org/dev/codelinux.html)下载。


配置:
#groupadd cvs
#useradd cvsroot
#chmod 777 -R /home/cvsroot
在 /etc/inetd.conf 里加入一行:
cvspserver stream tcp nowait root /usr/bin/cvs cvs -f –allow-root=/home/cvsroot pserver
在 /etc/services.conf 里加入一行(可能已存在):
cvspserver 2401/tcp # CVS client/server operations


添加必要的CVS用户到CVS组
如:
#usermod -g cvs -G cvs hjc

#useradd -g cvs -G cvs hjc


启动CVS Servr:
#killall -HUP inetd


建立CVS仓库
login as cvsroot
$cvs -d /home/cvsroot init


CVS Client:
Linux上CVS Server也可做CVS Client
window: 从cvshome下载。


配置环境变量:(假设 CVS Server 为111.222.1.110 )
CVSROOT=:pserver:hjc@111.222.1.110:/home/cvsroot


运行:
cvs –help-commands 获取命令的帮助
cvs login 登陆CVS Server
cd cvstest 进入project目录
cvs check project1 获取project1 的源码
cd project1 进入project1目录
cvs status 查看project1 的状态


你可以从 http://www.cvshome.org/docs/manual/index.html 获取更多的CVS 命令帮助。
CVS是RCS的前端工具,它是用于多用户并行开发的版本控制工具,它的最大特点 是使用了“copy-modify-merge”机制而不是“lock-modify-unlock”。通过使用 CVS生成一个存储文件的仓库(repository),存储在仓库中的每个目录叫做模块 (module),在修改时将相应的模块检出到工作目录中(working directory)生 成对应的目录,所有的修改都在工作目录中完成,修改完成后再提交到仓库中生 成新的版本号,并加以保存。
1. CVS初始化 ————- (1) 创建CVSROOT根目录 编辑有关的环境变量,加入CVSROOT的定义(比如在 /etc/bashrc 文件中加入下 面两行): CVSROOT=/usr/local/cvsroot export CVSROOT
然后在相应位置开始创建CVSROOT $cd /usr/local/ $mkdir cvsroot $cvs –d /usr/local/cvsroot init
这时就会产生/usr/local/cvsroot/CVSROOT 目录,这下面放着有关CVS的配置文 件。同时/usr/local/cvsroot/也作为文件仓库存放所有的文件。 (2) 创建开发项目 如果从头开始一个新的项目,就需要创建一个单独的目录,并把所有要使用的文 件做一个有效的组织。而如果在开始使用源文件的目录之前就有了,则只需进入 该目录就行了。 $cd /work/tang $ls cvstest . .. c/ $cd cvstest 然后,就可以输入源文件目录: $cvs import –m “Create Source Dir” cvstest/c tang cvstest
这样会生成 $CVSROOT/cvstest/c 目录。 其中 -m 用来指定注释信息,如果后面 在命令行不指定注释信息,则会启动缺省编辑器(vi)要求输入注释信息。 tan g, cvstest分别标识了厂商和发行标识。
注意,使用import命令会把当前目录下的所有文件和目录(包括子目录)引入到 文件仓库中指定模块(目录)下。
2. 命令简介 ————- (1) 检出源文件 cvs checkout [-r rev][-D date][-d dir][-j merg1] [-j merg2] modules
-r 检出指定版本的模块 -D 检出指定日期的模块 -d 检出指定目录而不是模块 -j 合并当前版本和指定版本
使用下面的命令会检出刚才生成的模块,并在当前目录下生成与文件仓库中完全 一样的目录结构: $cvs checkout cvstest/c
对于目录结构比较复杂的模块可以在 $CVSROOT/CVSROOT/modules中加以指定:


1) $cvs checkout CVSROOT/modules 2) 在modules文件中加入下面一行: SOURCE cvstest/c 3) 然后执行: $cvs commit –m “Add SOURCE”
以后就可以使用下面的命令在当前路径下生成 cvstest/c 目录 $cvs checkout SOURCE
在当前路径下生成的这个目录就被称为工作目录,对源文件的所有修改都应该在 这个目录下完成,而绝对不允许去改动在 文件仓库中$CVSROOT 目录下的文件。 (2) 删除、增加、重命名文件和目录 cvs add [-k kflags][-m message] files…
-k 指定以后该文件的缺省检出目录 -m 对文件的描述
上述命令会加入一个新的文件到文件仓库里,但直到使用了提交命令它才会真正 更新文件仓库。
cvs remove [options] files
上述命令会从文件仓库中删除文件,但也要到提交之后才有作用。 例1:增加文件 $cvs checkout SOURCE $cd cvstest/c $touch test.c $cvs add test.c $cvs commit –m “add test.c”
例2:删除文件 $cvs checkout SOURCE $cd cvstest/c $rm test.c $cvs remove test.c
使用 –f 选项能上面两步合做一步。 $cvs remove –f test.c
如果在提交之前想恢复刚才删除的文件,可以如下: $cvs add test.c 如果只执行了第一步删除(rm),则可以用下面的方法恢复: $cvs update test.c
对于重命名的文件,可以先删除再添加。
对于目录的修改(重命名),可能需要修改cvs 管理文件,一般应该遵循以下步 骤: 1) 确认所有有关的修改都已经提交; 2) 进入文件仓库中要修改的模块目录,对相应的目录进行修改(重命名或删除) $cd $CVSROOT/modules $mv old_dir new_dir 3) 如果有必要,修改管理文件,比如modules 文件 如果要删除目录,则应该先对目录中每个文件都进行了删除(包括使用cvs remo ve )处理之后再执行上面的第2步。 (3) 提交源文件 cvs commit [-Rl][-m mesg] files
-R 连子目录一起提交 -l 只提交本地目录(不提交子目录) -m 注释信息
在检出源文件之后,在工作目录中对源文件进行的所有修改都必须在提交之后才 能对文件仓库中的源文件起作用,并且新的文件才能够被分配一个新的版本号。 (4) 释放工作目录 cvs release –d SOURCE

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MVC的优点是什么? 下一篇介绍一下Oracle悲观锁和乐观锁

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: