CVS和RCS的一个简单例子

一,CVS:

1. 下载CVS安装包:

    http://www.nongnu.org/cvs/#TOCdownloading

   我下载的为:cvs-1.11.2-cvshome.1.i386.rpm;


2. 执行:rpm -Uvh cvs-1.11.2-cvshome.1.i386.rpm安装;


3. 在当前目录下新建版本库目录:mkdir cvsroot

   pwd的执行结果为:/root/Desktop/3/cvsroot;


4. 将上面新建的目录初始化为一个CVS版本库:cvs -d /root/Desktop/3/cvsroot/ init

   执行之后,发现cvsroot目录下有一个CVSROOT目录,下面的文件为:

   checkoutlist    config,v       Emptydir   modules,v  taginfo
   checkoutlist,v  cvswrappers    history    notify     taginfo,v
   commitinfo      cvswrappers,v  loginfo    notify,v   val-tags
   commitinfo,v    editinfo       loginfo,v  rcsinfo    verifymsg
   config          editinfo,v     modules    rcsinfo,v  verifymsg,v

  这些文件为CVS版本控制系统的相关文件

  接着执行:export CVSROOT=/root/Desktop/3/cvsroot/ 告诉cvs命令查找的目录;


5. 在/root/Desktop/4/目录下有两个文件:Hello.c和Makefile

   cd到该目录下,执行:cvs import -m"Initial version of Simple Project" project1/hello wrox start 导入文件,术语导入的含义    是,将文件置于CVS的控制下

   输出结果:

   N project1/hello/Hello.c
   N project1/hello/Makefile

   No conflicts created by this import

  表示导入成功,导入后,发现CVS版本库目录,即/root/Desktop/3/cvsroot/下有一个project1文件夹,该文件夹下有个hello文件夹,hello文件夹   下Hello.c,v  Makefile,v;


6. 提取文件,执行下面命令:

     mkdir junk

     cd junk

     cvs checkout project1/hello

   会输出:

  cvs checkout: Updating project1/hello
  U project1/hello/Hello.c
  U project1/hello/Makefile

  执行后发现junk目录下有一个project1文件夹,该文件夹下有个hello文件夹和CVS文件夹,hello文件夹下

  有CVS目录,Hello.c和Makefile,提取成功;


7. 在上面的提取后的Hello.c文件中添加:puts("have a nice day");后

   执行: cvs diff,会输出:

  cvs diff: Diffing .
  Index: Hello.c
  ===================================================================
  RCS file: /root/Desktop/3/cvsroot/project1/hello/Hello.c,v
  retrieving revision 1.1.1.1
  diff -r1.1.1.1 Hello.c
  5a6
  > puts("have a nice day");

  如果对自己的改动满意,可以将其提交给CVS,执行:cvs commit,需要用普通用户提交

  注:CVS缺省设置为不能用root用户commit,这个在其手册里写的很清楚,主要是为了维护用户修改记录。可以重新编译使其支持,不过不推荐,

    若开始是用root用户,则可以用chmod -R a+rwx dir来修改dir目录中所有文件的访问权限,以便其他用户可以访问,从而切换用户后可以

    执行:cvs commit

  执行:cvs rdiff -r1.1 project1/hello询问这个项目第一次导入后的改动情况,输出如下:

  cvs rdiff: Diffing project1/hello
  Index: project1/hello/Hello.c
  diff -c project1/hello/Hello.c:1.1 project1/hello/Hello.c:1.2
  *** project1/hello/Hello.c:1.1 Sun Oct 19 07:27:52 2014
  --- project1/hello/Hello.c Sun Oct 19 08:00:38 2014
  ***************
  *** 3,7 ****
  --- 3,8 ----
  int main()
  {
  puts("hello wolrd");
  + puts("have a nice day");
  return 0;
  }

  提交之后,再次从CVS系统中获取文件:cvs checkout project1/hello, 打开其中的Hello.c文件,发现内容改变了,多了一行puts("have a   nice day"); 如下:

#include <stdio.h>

int main()
{
puts("hello wolrd");
puts("have a nice day");
return 0;
}

    

8. 假设CVS系统之外的本地目录中还有一份代码的副本,现在你想刷新该目录中的文件以更新那些你没有修改过,但已被

   其他人修改过的文件,执行:cvs update -Pd project1/hello即可。


 注:整理于:《Linux 程序设计》第四版 P337


二,RCS

   1. 下载:http://directory.fsf.org/wiki/Rcs

       下载文件名:rcs-5.9.3.tar.xz,执行下面的命令解压缩:

xz -d rcs-5.9.3.tar.xz

tar -xvf  rcs-5.9.3.tar

可以看到这个压缩包也是两层压缩,外面是xz压缩方式,里层是tar压缩方式

2. 到对应目录下依次执行:configure,make, make install命令,即可使用rsc命令了,具体使用见《Linux 程序设计》第四版 P331

   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值