一,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缺省设置为不能用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