版本控制是指跟踪和管理源代码文件变化的自动过程。RCS(Revision Control System),是最常用的版本控制解决方案,之后有两个工具可以替代RCS,一个是SCCS(Source Code Control System),另外一个是CVS(Concurrent Version System),其中CVS建立在RCS的基础上,但CVS更适合管理多目录的项目,因为它处理层次目录结构更加简单。
简介RCS命令前先说明几个概念。
1、RCS file:指在RCS目录下的文件,有RCS控制,并通过RCS命令存取。文件扩展名是.v;
2、Working file:从RCS目录中检索到的一个或多个文件,放置在当前目录,并能够被编辑;
3、Lock:以编辑目的取回工作文件时别人就不能同时编辑这个文件。此时,文件由第一个编辑它的人锁定。
RCS只使用ci、co和一个名为RCS的目录就可以完成RCS的很多工作,RCS目录是RCS源代码库,各个版本的源代码都存放在源代码库中,ci代表“check in”,即在RCS目录下保存一个工作文件,co代表“check out”,用于从RCS目录中检索RCS文件。
首先,我们建立一个名为RCS的目录
#mkdir RCS
然后,在RCS源代码库中存入源代码
#ci test.c
取出文件
#co -l test.c,-l表示文件锁定,锁定含义前面已经介绍清楚了。
其他命令参数介绍
-u 与-l意思相反,取出的文件只读;
-r Num Num表示版本号,如取出1.5版本的文件 #co -l -r1.5 test.c;
-f 表示强制RCS覆盖当前的工作文件,缺省情况下,工作目录下存在同名文件,RCS操作会失败。
RCS关键字:RCS关键字是一些特殊的类似于宏的记号,可以用在源代码、目标文件或二进制文件中插入和维护识别信息。形式为$KEYWORD$,当一个包含的关键字的文件被取回时,RCS将$KEYWORD$扩展为$KEYWORD:VALUE$。
$Id$:文件名,版本号,创建时间日期,作者,状态,是否锁定;
$Log$:文件版本信息记录
$Author$:存入版本的用户登录名
$Date$:日期和时间
$Header$:文件全路径名,版本号,日期,时间,作者,状态,加锁者
$Locker$:加锁者
$Name$:用于取回该版本的符号名
$RCSfile$:不包含路径的文件名
$Revision$:版本号
$Source$:全路径名
$State$:版本状态,实验版Exp、稳定版Stab、发行版Rel