Chinaunix首页 | 论坛 | 博客
  • 博客访问: 262824
  • 博文数量: 54
  • 博客积分: 1761
  • 博客等级: 上尉
  • 技术积分: 585
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-17 23:30
文章分类

全部博文(54)

文章存档

2013年(4)

2012年(7)

2011年(15)

2010年(28)

分类: LINUX

2011-01-06 23:30:45

版本控制软件,这个名词早就滥记于心了。版本控制的主要目的是在于多人对同一个资源进行编辑时,将他们的行为线程化。即同时只有一个人在编辑。可是对于我们这类程序写的不多的人来说,不免有一些感觉遥远。什么是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提醒你为该文件添加注释。并以.号结束。
  1. [hiro@dingqu learnRCS]$ ci -u working.file
  2. RCS/working.file,v <-- working.file
  3. enter description, terminated with single '.' or end of file:
  4. NOTE: This is NOT the log message!
  5. >> this is first create
  6. >> .

可以看到RCS目录下,多了这样一个文件,
working.file,v
该文件保存了所有修改记录。另外此时,workding.file变为一个只读文件。

如果需要编辑一个被RCS控制的文件,需要使用rlog确认该文件是否被其他人牵出。下面是签出前和签出后,rlog所看到的不同情况。
  1. [root@dingqu learnRCS]# rlog -h working.file

  2. RCS file: RCS/working.file,v
  3. Working file: working.file
  4. head: 1.1
  5. branch:
  6. locks: strict
  7. access list:
  8. symbolic names:
  9. keyword substitution: kv
  10. total revisions: 1
  11. =============================================================================
  12. [root@dingqu learnRCS]# rlog -h working.file

  13. RCS file: RCS/working.file,v
  14. Working file: working.file
  15. head: 1.1
  16. branch:
  17. locks: strict
  18. hiro: 1.1
  19. access list:
  20. symbolic names:
  21. keyword substitution: kv
  22. total revisions: 1
  23. =============================================================================
rlog working.file提供更加详细的信息。

这样还不够,最好能够用
rcsdiff working.file
来确认当前的working.file和最后版本的版本之间没有区别。虽然我们的working.file在上次被我们check in之后变成只读文件,但还是有可能存在某些人强制写入文件。例如,下面这个文件就别别人写入了第二号
  1. [hiro@dingqu learnRCS]$ ci -u working.file
  2. RCS/working.file,v <-- working.file
  3. file is unchanged; reverting to previous revision 1.1
  4. done
  5. [hiro@dingqu learnRCS]$ cat working.file
  6. this is the first line
  7. this is the second line
  8. [hiro@dingqu learnRCS]$ rcsdiff working.file
  9. ===================================================================
  10. RCS file: RCS/working.file,v
  11. retrieving revision 1.1
  12. diff -r1.1 working.file
  13. 1a2
  14. > 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

恢复到特定版本
  1. rcs -u working.file 先break可能的lock
  2. co -r1.3 -l working.file 再checkout 1.3版本





阅读(2149) | 评论(0) | 转发(0) |
0

上一篇:语法糖概念

下一篇:AWK

给主人留下些什么吧!~~