CVS
使用手册
(仅供内部交流使用)
一、
基
本概念
CVS
是一个可以多人协同工作的文件版本管理工具,常用于源代码的管理,也可以用
于其他基于文本结构的文件的历史版本管理。
CVS
是基于文件进行管理,并不保存目录的变更信息。保存每一个文件的每一次修改
的信息,
能够方便的查找到每一个文件的不同时刻的版本的内容。
可以方便查找旧有版本进
行比较或者回退。通过
TAG
记录版本的统一基准。通过分支支持多版本的开发与合并。对
第三方代码的跟踪提供了支持。
CVS
使用中心源代码库和个人工作空间的方式。使用
CVS
进行管理的项目有一个中心
的源代码库
(
Repository
)
,
然后开发人员
checkout
到本地的个人工作空间中进行修改,
修改
完毕之后将新的版本
commit
到中心源代码库中,其他开发人员可以将这个新的版本
update
到他们本地的个人工作空间中。
CVS
在多人协同上没有采用加锁机制(
lock-modify-unlock
)
,而是使用冲突合并机制
(
copy-modify-merge
)
。所有人可以同时修改同一个文件,后提交的人需要将别人已提交的
更新合并到本地,解决不同修改之间的冲突,再提交新版本。
CVS
所管理的文件,每一个版本都有一个唯一的版本号,通常使用
1.1
、
1.2
的方式递
增。而分支的版本号则增加两位,如
1.3.1.4
、
1.3.1.5
等。为了方便记忆,可以通过
TAG
的
操作,
为某一时刻的不同文件添加同一个版本名称。
另外,
可以通过某个特定的时间点的方
式来指定所需的版本。
二、
代
码修改
2.1.
准备工作
CVS
可以通过本地路径、
pserver
、
ssh tunnel
的方式来访问,
这里主要讨论
pserver
方式。
为了避免每次输入
cvs
命令都加
–
d
:pserver:user@host:/path
的参数,可以设置
CVSROOT
变量,这个设置可以写入
~/.bashrc
或
~/.bash_profile
中,在执行
CVS
其他命
令前,要先执行一下
cvs login
命令:
$ export CVSROOT=:pserver:username@192.168.100.2:/cvsroot/proj
$ cvs login
(另外,
CVS
服务器建立提供服务前,首先要初始化,使用
$ cvs init
命令(略)
。
)