rcs的使用方法
时间:2005-12-14 来源:xktop
在个人编程和开发方面。rcs还是很有作为的,我个人工作时很喜欢用它来协助,不仅仅是它的简单易用,还有它的方便快捷。
l rcs:控制RCS存档文件属性。
l ci:提交文件到存档。
l co:从存档中读出文件。
l rlog:输出RCS记录信息。
l rcsdiff:执行diff比较版本。
l rcsclean:清除没有人工作或没有改变的文件。
l rcsmerge:合并两个RCS分支到一个单一的分支。
l ident:在RCS文档文件中搜索关键词,关键词的格式为$key:txt$形式,可见man手册页的例子。。
一个简单的例子:
xk@linux:~/work/c> mkdir RCS
xk@linux:~/work/c> rcs -i hello.cpp
RCS file: RCS/hello.cpp,v
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> Test file
>> .
done
xk@linux:~/work/c> rlog hello.cpp
RCS file: RCS/hello.cpp,v
Working file: hello.cpp
head:
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 0
description:
Test file
======================================================================
xk@linux:~/work/c> vi hello.cpp
...
xk@linux:~/work/c> ci -m"hello world" hello.cpp
RCS/hello.cpp,v <-- hello.cpp
initial revision: 1.1
done
xk@linux:~/work/c>rlog hello.cpp
RCS file: RCS/hello.cpp,v
Working file: hello.cpp
head: 1.1
branch:
locks: strict
xk: 1.1
access list:
symbolic names:
keyword substitution: kv
total revisions: 1; selected revisions: 1
description:
Test file
----------------------------
revision 1.1 locked by: xk;
date: 2005/12/07 13:23:35; author: xk; state: Exp;
hello world
xk@linux:~/work/c> vi hello.cpp
...
xk@linux:~/work/c> ci -m"hello" hello.cpp
RCS/hello.cpp,v <-- hello.cpp
new revision: 1.2; previous revision: 1.1
done
xk@linux:~/work/c> rcsdiff -r1.1 -r1.2 hello.cpp
===================================================================
RCS file: RCS/hello.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -r1.1 -r1.2
4c4
< std::cout<<"hello,world! ";
---
> std::cout<<"hello! ";
xk@linux:~/work/c>
在上面的例子中我们用到了如下一些命令和选项:
rcs –i file:初始化一个存档文件
rlog file:显示文件的信息
ci –m[msg] file:提交并提出且锁住文件供编辑
co –l file:提出文件并锁住文件供编辑
rcsdiff –r[R1] –r[R2] file:比较不同版本的文件的差别
除了上述命令选项,还有如下一些常用的:
co –r[R] file:提出版本为R的文件
ci –r[R] file:以版本R提交
rlog –r[R] file:显示版本R的文件信息
rcs –t-msg file:修改文件的描述信息,如下:
xk@linux:~/work/c> rcs -t-"hello world" hello.cpp
RCS file: RCS/hello.cpp,v
done
xk@linux:~/work/c> rlog hello.cpp
RCS file: RCS/hello.cpp,v
Working file: hello.cpp
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2; selected revisions: 2
description:
hello world
----------------------------
revision 1.2
date: 2005/12/07 13:30:26; author: xk; state: Exp; lines: +1 -1
hello
----------------------------
revision 1.1
date: 2005/12/07 13:23:35; author: xk; state: Exp;
hello world
======================================================================
xk@linux:~/work/c>
rcsmerge –p –r[R1] –r[R2] file:合并两个版本的文件到一个文件,并且不影响工作文件而是将结果打印到标准输出。
rcsmerge –r[R1] –r[R2] file:合并两个版本到一个文件,并改变工作文件,如下:
xk@linux:~/work/c> rcsmerge -p -r1.1 -r1.2 hello.cpp
RCS file: RCS/hello.cpp,v
retrieving revision 1.1
retrieving revision 1.2
Merging differences between 1.1 and 1.2 into hello.cpp; result to stdout
#include
int main()
{
std::cout<<"hello! ";
return (0);
}
xk@linux:~/work/c> rcsmerge -r1.1 -r1.2 hello.cpp
RCS file: RCS/hello.cpp,v
retrieving revision 1.1
retrieving revision 1.2
Merging differences between 1.1 and 1.2 into hello.cpp
xk@linux:~/work/c>
文档的分支结构:
xk@linux:~/work/c> ci -r1.1.1 -m"new b" hello.cpp
RCS/hello.cpp,v <-- hello.cpp
new revision: 1.1.1.1; previous revision: 1.1
done
xk@linux:~/work/c> rlog hello.cpp
RCS file: RCS/hello.cpp,v
Working file: hello.cpp
head: 1.2
branch:
locks: strict
xk: 1.2
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description:
hello world
----------------------------
revision 1.2 locked by: xk;
date: 2005/12/07 13:30:26; author: xk; state: Exp; lines: +1 -1
hello
----------------------------
revision 1.1
date: 2005/12/07 13:23:35; author: xk; state: Exp;
branches: 1.1.1;
hello world
----------------------------
revision 1.1.1.1
date: 2005/12/07 14:10:39; author: xk; state: Exp; lines: +1 -1
new b
...
xk@linux:~/work/c> ci -r1.2.1 -m"new b" hello.cpp
RCS/hello.cpp,v <-- hello.cpp
new revision: 1.2.1.1; previous revision: 1.2
done
xk@linux:~/work/c> rlog hello.cpp
RCS file: RCS/hello.cpp,v
Working file: hello.cpp
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 4; selected revisions: 4
description:
hello world
----------------------------
revision 1.2
date: 2005/12/07 13:30:26; author: xk; state: Exp; lines: +1 -1
branches: 1.2.1;
hello
----------------------------
revision 1.1
date: 2005/12/07 13:23:35; author: xk; state: Exp;
branches: 1.1.1;
hello world
----------------------------
revision 1.1.1.1
date: 2005/12/07 14:10:39; author: xk; state: Exp; lines: +1 -1
new b
----------------------------
revision 1.2.1.1
date: 2005/12/07 14:14:04; author: xk; state: Exp; lines: +1 -1
new b
======================================================================
xk@linux:~/work/c>