版本控制软件,这个名词早就滥记于心了。版本控制的主要目的是在于多人对同一个资源进行编辑时,将他们的行为线程化。即同时只有一个人在编辑。可是对于我们这类程序写的不多的人来说,不免有一些感觉遥远。什么是check in,check out? SVN,Git,CVS这么多,应该用哪个呢?
管他这么多呢,使用最要紧。这里介绍一下Linux管理员或者脚本开发人员常用的一些版本控制 - RCS。虽然RCS一次性最好只用于一个文件的版本控制,不过这样已经足够我们使用了。
如果使用RCS处理得当的话,应该可以达到几个目标:
修改的东西不会丢失
可以查看历史修改记录
恢复到历史版本
在使用RCS之前,请确认你的Linux或者Unix已经安装了RCS。在工作目录中加入RCS目录,用于保存签入的所有文件数据。
mkdir RCS
第一个将一个文件介绍到RCS时,使用ci将其check in
ci -u working.file
这时rcs提醒你为该文件添加注释。并以.号结束。
- [hiro@dingqu learnRCS]$ ci -u working.file
-
RCS/working.file,v <-- working.file
-
enter description, terminated with single '.' or end of file:
-
NOTE: This is NOT the log message!
-
>> this is first create
-
>> .
可以看到RCS目录下,多了这样一个文件,
working.file,v
该文件保存了所有修改记录。另外此时,workding.file变为一个只读文件。
如果需要编辑一个被RCS控制的文件,需要使用rlog确认该文件是否被其他人牵出。下面是签出前和签出后,rlog所看到的不同情况。
- [root@dingqu learnRCS]# rlog -h working.file
-
-
RCS file: RCS/working.file,v
-
Working file: working.file
-
head: 1.1
-
branch:
-
locks: strict
-
access list:
-
symbolic names:
-
keyword substitution: kv
-
total revisions: 1
-
=============================================================================
-
[root@dingqu learnRCS]# rlog -h working.file
-
-
RCS file: RCS/working.file,v
-
Working file: working.file
-
head: 1.1
-
branch:
-
locks: strict
-
hiro: 1.1
-
access list:
-
symbolic names:
-
keyword substitution: kv
-
total revisions: 1
-
=============================================================================
rlog working.file提供更加详细的信息。
这样还不够,最好能够用
rcsdiff working.file
来确认当前的working.file和最后版本的版本之间没有区别。虽然我们的working.file在上次被我们check in之后变成只读文件,但还是有可能存在某些人强制写入文件。例如,下面这个文件就别别人写入了第二号
- [hiro@dingqu learnRCS]$ ci -u working.file
-
RCS/working.file,v <-- working.file
-
file is unchanged; reverting to previous revision 1.1
-
done
-
[hiro@dingqu learnRCS]$ cat working.file
-
this is the first line
-
this is the second line
-
[hiro@dingqu learnRCS]$ rcsdiff working.file
-
===================================================================
-
RCS file: RCS/working.file,v
-
retrieving revision 1.1
-
diff -r1.1 working.file
-
1a2
-
> this is the second line
如何ci文件如果编辑一个很长的文件,且修改内容很多,可以在修改一半后,
ci -l working.file
此命令,相当于ci -u workding.file co -u working.file
如果编辑完一个命令后,需要添加的修改注释很多,可以将注释放入到一个普通文件中,再这样讲内容加入的注释中
ci -m 'cat /tmp/log' -u working.file
如果想将一个文件ci后,自动在本目录中删除workding.file。可
ci workingfile
文件被他人锁?使用rcsdiff 查看,该文件是否被修改过,然后还要确定被修改过应该怎么处理,没有修改过又该如何处理。
没有修改过的处理方式比较简单:
rcs -u working.file 强制break lock
再co 文件,进行编辑
如果文件已经被修改过
查看各版本之间的差异rcsdiff -r1.1 -r1.3 working.file
恢复到最新版本的RCS文件co -u working.file 注意这里没有比较要lock
恢复到特定版本- rcs -u working.file 先break可能的lock
-
co -r1.3 -l working.file 再checkout 1.3版本
阅读(2149) | 评论(0) | 转发(0) |