LINUX上配置CVS服务器之三(2)
3.4 文件版本管理
版本管理系统,最重要的莫过于对文件版本的管理,系统默认的版本升级使用的版本号是一定的.如果由于特殊需要,要自己定义出文件的版本号时,你可以用一下命令:
cvs log [-lr][-r rev][-d date][-w login][files…]
其中,参数的意义如下:
-l 不处理子目录
-r 对子目录做同样处理
-r 指定版本号
-d 指定时间
-w 指定登录名
使用下面的命令可以参看当前模块的版本号或指定文件的所有历史版本信息。
cvs annotate [-lr][-r rev|-d date] files
其中,参数的意义如下:
-l 不处理子目录
-r 对子目录做同样处理
-r 指定版本号
使用下面的命令可以参看指定文件(检出之后)的所有修改信息。
$cvs annotate cvstest/c/test.c
输出依次为:版本 修改人 修改时间 源代码
1.1 (tang 18-jan-00): #include
1.1 (tang 18-jan-00): #include
1.1 (tang 18-jan-00):
1.1 (tang 18-jan-00): main()
1.1 (tang 18-jan-00): {
1.1 (tang 18-jan-00): int i = 0 ;
1.1 (tang 18-jan-00):
1.1 (tang 18-jan-00): for(i = 0; i < 20; i++)
1.1 (tang 18-jan-00): printf("count: %d
", i);
1.1 (tang 18-jan-00):
1.3 (tang 18-jan-00): printf("222222
");
1.4 (tang 18-jan-00): printf("333333
");
1.1 (tang 18-jan-00): }
使用下面的命令可以生成相对于一个指定主版本的分支版本:
cvs rtag �b �r rev_root rev_branch file_name
其中,参数的意义如下:
-b 指定生成一个分支版本
-r 指定该分支的主干节点版本号
rev_root 主干版本号
rev_branch 分支版本号
file_name 指定文件,使用“.”表示当前目录下所有文件
使用下面的命令可以生成一个对应版本号的分支版本,由于cvs 版本号是用数字表示的,而且在同一个模块下不同文件的版本完全可能是不同的,所以使用标识会更方便。
例:
$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 拥有,大量的命令.如gcc 一样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 checkou
Tag: CVS
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。