千家信息网

Linux下CVS的安装配置与操作命令总结

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了"Linux下CVS的安装配置与操作命令总结"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2026年10月31日Linux下CVS的安装配置与操作命令总结

本篇内容介绍了"Linux下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在Redhat Linux中已经安装,这一点可以通过在Linux命令行的情况下运行:

代码如下:

rpm –q cvs


如果出现CVS的版本信息就证明已经安装成功了。
CVS服务器安装包可以从网上的很多地方下载,也可以到CVS的官方网站进行下载。根据你所使用的系统,下载相应的版本,然后进行安装。因为我们的项目是在Redhat Linux下使用CVS服务器进行版本管理,所以本文将主要基于Redhat Linux进行介绍。首先下载CVS服务器的rpm包,当然也可以下载其它方式的包如源程序包,然后采用以下命令进行安装:

代码如下:

rpm -ivh cvs-1.11.7-1.i386.rpm

CVS服务器的配置
安装完之后的第一件事就是要配置CVS服务器的配置文件,使其能正常的工作。首先在/etc/services文件中添加cvspserver,使其成为Linux的一种服务也就是cvs服务器例程的入口,配置如下:
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations
如果文件中已经存在上面的两行文字,就不用添加了。

配置xinetd,用xinetd来启动CVS验证服务器:
进入到/etc/xinetd.d/目录,然后编辑一个文本文件,名字一定要与/etc/services中的入口名字cvspserver一致,所以这里用cvspserver作为文件名,文件的内容如下所示:

代码如下:


service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/usr/cvsroot pserver
log_on_failure += USERID
}


编辑文件之后测试cvspserver服务是否配置成功。
执行

代码如下:


/etc/init.d/xinetd restart


重新启动服务,启动成功之后,执行下面的语句,验证服务是否启动正常:

代码如下:


telnet localhost 2401


如果出现如下字样:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
输入hi,会继续输出如下字样
cvs [pserver aborted]: bad auth protocol start: hi
Connection closed by foreign host.
出现以上的现象表示CVS用户验证服务器已经配置成功。
如果出现如下字样,表示配置不成功,请重新检查以上的配置:
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused


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是缺省的),提示键入文本,修改记录注释.


CVS update

CVS允许多人同时对一个文件进行修改.
假设泥正在修改文件的一部分,现想合并更新自己的本地拷贝(checkout)和
另一个人所做的修改(已经放在仓库里),可用cvs update

代码如下:


cvs update

CVS tag , CVS rtag

创建分支可以使用户对一些文件进行修改而不会影响主干(当commit时).
创建分支首先为拟修改的某些文件创建一个标签(tag),标签是赋于一个文件或一组文件的符号.在源代码的生命周期里,组成一组模块的文件被赋于相同的标签.

创建标签:在工作目录里执行cvs tag
例: 为src创建标签:

代码如下:


cvs checkout src
cvs tag release-1-0


标签创建后, 就可以为其创建一个分支:

代码如下:


cvs rtag -b -r release-1-0 release-1-0-path print


-b :创建分支
-r release-1-0 :指定存在的标签
releas-1-0-patch:分支
print: 模块名

合并
使用cvs update -j 选项可以将分支上的改变与本地文件拷贝合并.

代码如下:


cvs update -j release-1-0 print.c

cvs release
对源文件作必要修改后, 可以用cvs release 删除本地工作拷贝
并通知其他开发者这个模块不再使用.

代码如下:


cvs release -d print


-d : 删除
print: 目录

冲突
由于CVS允许多人同时修改同一文件,冲突是不可避免的.例如当两人
同时修改同一文件的同一行时.
这时,如用cvs update 更新,CVS检测到冲突的存在,它会将冲突的代码
用/"<<<<<<<<<<<<<<>>>>>>>>>>>>>>/"标识.这时需手工处理这段代码.与引起
冲突的开发者协商,并对文件修改后即可用cvs commit提交.

"Linux下CVS的安装配置与操作命令总结"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

文件 代码 命令 服务 配置 服务器 版本 仓库 标签 目录 分支 路径 成功 路径名 冲突 管理 信息 文件名 源文件 用户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 广东猪兼强互联网科技有限公司 哈尔滨大商圈互联网科技有限公司 互联网科技的发展 易互联网科技有限公司 互联网科技公司怎么样 汇久创客互联网科技 米客互联网科技 金融科技和互联网金融 无锡溥仪互联网科技有限公司 顶级互联网科技成果有哪些 互联网科技有哪些公司 湖南一路畅行互联网科技 移动互联网年度科技创新 深圳育鹏互联网科技有限公司招聘 黑云互联网科技有限公司 互联网科技收购价值 兰石爱特工业互联网科技分公司 张家口科技产业互联网平台 绵阳真晨互联网科技有限公司 手磨咖啡 互联网科技股票 互联网科技小额贷款 互联网科技公司的市场部门 恒生互联网科技业指数调整周期 烟台灵鸽互联网科技有限公司 华中科技大学互联网的牛人 科技互联网海报 银行科技岗属于互联网吗 株洲百竞科技的互联网营销顾问
0