cvs是一种版本控制系统,它不同于一般的版本控制系统,它可以实现版本的并发管理,即可已有多个用户同时改动同一个文件而不会互相影响,然后不同的用户将它们各自修改的文件提交到cvs服务器上,有cvs来进行文件之间的比较,进而把这些不同的部分按照某种算法进行合并形成一个新的版本。
cvs服务器一般架设在unix系统上,虽然也有可以在Windows上运行的服务器版本,但是其性能表现远不如在unix上面表现的好, 但是cvs的客户端在Windows下却可以工作的很好。我在这里讲简单地介绍一下在Linux下配制cvs服务,以及在Windows下客户端的设置情况。
首先我们先说一下如何在Linux上设置cvs服务,绝大多数的Linux发行拌种都包含了cvs,如果你的发行版本中没有或者你向是用新的cvs版本,你可以到http://www.cvshome.org去取得新的服务器版本,这里讲述的是以1.10版为基础的, 它应该适合更新的版本.
如果你是从http://www.cvshome.org上的到的.tar.gz形式的源代码版本,参照源代码中的相关的说明文件,安装指导来编译程序,然后进行安装,如果你是用Linux发行版中的cvs包进行安装,执行相应的包管理工具。比如在Redhat中你可以是用下面的命令来安装cvs.rpm -ivh cvs-1.10.8-3.i386.rpm
在安装完成后,我们可以进行相应的配置。一般cvs是用pserver的认证方式作为一种服务在Linux上运行,先要确定系统里/etc/services文件有cvs服务的入口,一般得有以下两行:
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations
cvs服务是通过.netd或者是xinetd来启动的。对于inetd,修改/etc/inetd.conf,添加以下的句子:
cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/cvsroot pserver
由于在较新的Linux发行版(如:RedHat7.x)中都是用新xinetd代替了inetd,要用xinetd来启动cvs服务
你需要进入到/etc/xinetd.d/目录,然后编辑一个文本文件(名字随意),这里是用cvspserver作为文件名,这个文件的内容如下所示:
service cvspserver
{
socket_type = stream
wait = no
user = root
env = HOME=
server = /usr/bin/cvs
server_args = --allow-root=/cvsroot pserver
}
注意上面的service后面的名称一定要和你在/etc/service文件中的cvs服务名称一样,在server_args行我们指定了cvs使用pserver认证方式,可能容易产生误解的是env = HOME=这一行,添加这一行的目的是为了解决在执行一些cvs操作时产生的读取/root/.cvsignore文件的错误,上面env那行的意思是在运行cvs服务的时候将环境变量HOME置空,这样虽然执行cvs的用户是root,但是由于没有了HOME这个环境变量,所以cvs不会在去读取/root/.cvsignore文件了。