Linux 版 (精华区)

发信人: tcpip (俺的昵称改了), 信区: Linux
标  题: cvs (2)
发信站: 哈工大紫丁香 (Sat Sep 18 17:53:24 1999), 转信

CVS(并发版本系统)简介(二)

在介绍CVS命令之前,先说点别的 

如以前说,仓库内除乐源文件外,还包括一系列的管理文件.位于$CVSROOT/CVSROOT 

修改管理文件的方法等同于源代码文件,利用CVS命令提取和修改. 

下面描述每个文件的用途: 

checkoutlist 支持CVSROOT目录的其它管理文件,允许为各种CVS命令定置信息 

commitinfo 在cvs commit命令执行时,这个文件指定乐文件提交时执行的命令 

cvswrappers 定义乐一个包装程序当文件登记或检取时就会执行. 

editinfo 允许你在commit命令启动前在日志信息被记录后执行的脚本 

history 跟踪所有影响仓库的命令 

loginfo 类似coimmitinfo, 只是在文件提交后执行 

modules 允许为一组文件定义一个符号,否则必须为每一个要引用的文件 

指定部分路径名(相对于$CVSROOT) 

nitify 控制从"watch"来的通知."watch"由"cvs watch add"和"cvs edit" 

设置 

rcsinfo 为commit log回话指定一个模板. 

taginfo 定义乐在任意"tag"操作后执行的程序. 

CVS的环境变量 

CVS使用乐几个环境变量 

CVSROOT 仓库根目录的完整路径名 

CVSREAD 如果设置,表明在checkout操作时所有的文件都置成只读 

CVSBIN CVS利用乐很多RCS的命令,指定乐RCS工具的路径 

CVSEDITOR 指定用户书写日志信息所使用的编辑器 

CVS_RSH 启动一个远程CVS服务器时,所使用的shell的名称 

CVS_SERVER 决定"cvs server"的名字,缺省是CVS 

CVSWRAPPERS cvswrapper脚本, 用来指定包装文件名. 

关键字 

管理源文件的一种技术叫"关键字替换".在每次执行"cvs commit"操作后 

源文件的某些关键字会被替换为可用的词 

$AUTHOR$ 用户名 

$Data$ 登记时的时间 

$Header$ 标准的首部,包含RCS的完整路径名,日期,作者 

$Id$ 除RCS文件名不完整外与$Header$同. 

$Log$ 包含RCS的完整路径名,版本号,日期,作者和在提交时提供的日志信息. 

$RCSfile$ 包含RCS的文件名,不包括路径名 

$Revision$ 分配的版本号 

$Source$ RCS文件的完整名 

$State$ 分配的版本的状态,由 cvs admin -s 分配. 

例: 

在cvs commit之前,main.c里有 

static char *rcsid="$Id$"; 

执行cvs commit后 

main.c的改行变为: 

static char *rcsid="$Id: main.c,v 1.2 1999/04/29 15:10:14 trimblef Exp$"; 

下面开始说说CVS的命令 

我们已下面仓库的数据为例 

$CVSROOT 

--CVSROOT 

--project 

--src 

--main 

--main.c 

--main.h 

--print 

--print.c 

--print.h 

--term 

--term.c 

--term.h 

CVS checkout 命令 

从仓库提取指定的文件到当前目录,并建立同样的结构,并创建CVS目录 

例 

bash$ cvs checkout project 

bash$ cvs checkout project/src/main 

为使用便利,我们可以对一个目录建一个缩写,方法是修改$CVSROOT/CVSROOT/下的 

modules文件.(当然是用cvs 命令完成) 

cvs checkout CVSROOT/modules 

cd CVSROOT 

vi modules 

我们在文件尾加上 

src project/src 

print project/src/print 

cvs commit 

以后我们就可以用cvs checkout print来代替 

cvs checkout project/src/print 

cvs checkout命令缺省是得到最新版本.我们也可以得到某一个老版本 

cvs checkout -r 1.1 print 

将print的1.1版的代码取出. 

cvs checkout的详细用法见cvs -H checkout的输出. 

CVS commit 命令 

在对文件的修改完成后,用cvs commit提交到仓库. 

cvs commit -m "Update by xxxxx" project 

cvs commit -m "Update main.c" main.c 

提交完成后,当前的版本号会更新,如原来为1.1,现为1.2. 这两个版本都在 

仓库的主干(maintrunk)上. 

-m选项可以记录有关提交的注释.如果没有指定-m选项,在环境变量CVSEDITOR 

中指定的编辑器被调用(vi是缺省的),提示键入文本,修改记录注释. 


--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bin@mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:9.316毫秒