例:
$cvs rtag –b –r 1.2 tlb-1 SOURCE
以后要访问该分支版本,可以使用“-r” 选项
$cvs checkout –r tlb-1 SOURCE
从当前检出的版本切换到一个分支版本:
$cvs update –r tlb-1 SOURCE
使用下面的命令可以看版本信息:
cvs status [–vlR] files
其中,参数的意义如下:
-v 显示所有信息
-l 不显示子目录信息
-R 显示子目录信息
命令:cvs update –j rev module 把当前所做的修改与指定版本的文件进行合并。
如:主干 1.1 1.2 1.3 1.4 1.5 1.6 ↓
分支tlb-1 1.2.2.1 1.2.2.2 1.2.2.3
如果要合并分支tlb-1上的版本:
$cvs update –j 1.2.2.3 –j tlb-1 test.c
其中1.2.2.3可以通过tag命令生成一个容易记忆的标识。
如果要合并分支tlb-1到主干上1.2 :
$cvs update –j tlb-1 test.c
如果要合并主干上的不同版本(注意顺序很重要,同时在指定版本之间的所有修改将被丢弃):
$cvs update –j 1.5 –j 1.2 test.c
如果在不同版本之间模块的文件有增减,则可以:
$cvs update –A
$cvs updata –jbranch_name
四、命令集
在本章的例子中,介绍了很多,命令的详细用法,其大多数是以应用的角度,来分析的.实际上.cvs 拥有,大量的命令.如gclearcase/" target="_blank" >cc 一样cvs 常用的命令也不是很多,在本节中,我们列出了一些常用的命令.力图不和以上各节中介绍的相重复.当然,限于时间和水平,在此也不可能列出cvs 所有的命令.有兴趣的朋友.可以,参考,cvs的说明文档,与linux 的man文档,详细学习,也可来此做出指导
1.检出源文件
cvs checkout [-r rev][-D date][-d dir][-j merg1] [-j merg2] modules
其中,参数的意义如下:
-r 检出指定版本的模块
-D 检出指定日期的模块
-d 检出指定目录而不是模块
-j 合并当前版本和指定版本
使用下面的命令会检出刚才生成的模块,并在当前目录下生成与文件仓库中完全一样的目录结构:
usr$ cvs checkout project
usr$ cvs checkout project/src/main
cvs checkout的详细用法见cvs -H checkout的输出.
2.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是缺省的),提示键入文本,修改记录注释.
3.删除、增加、重命名文件和目录
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