大概是两年前,我从我一个考研的朋友那里听到关于cvs和版本控制这两个词,当时他还教了我怎样在windows平台下配置wincvs和cvsnt。可
惜我当时并不在意这个,弄得现在配置这个东西花了我两天的时间,值得安慰的是在参考了众多网友的经验之后总算配置成功。为此把我的经验和教训贴出来以表示
对网友们的谢意(很抱歉的是当时只顾着看怎么配置没有记下各位网友的名字,ps自己一下)和对自己的鼓励。以后会把如何在开发过程中的使用贴出来。本文主
要参考资料是:
吴炎溪 Email:Yanxi-Wu@21cn.com的《cvs服务器与wincvs的配置与使用》,发在chinaunix上。
我配置时服务器是redhat linux 9,客户端是windows xp和wincvs。这里假定读者已经安装好了redhat linux
9和wincvs,如果不知道怎么安装可以到网上搜一下。redhat linux
9的安装我使用的完全安装,就是把光盘里带的所有东西都安装上了。这样的话所有的服务器和服务应该都有了,为了偷懒我还把linux上的防火墙给关掉了,
我是内部局域网使用,如果不是的话千万不要把防火墙关了。(再ps自己一下)
一、linux下的cvs服务器配置
1、查看/etc/services文件:
首先要看看/etc/services这个文件,以确认cvs服务和端口已经打开:
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations
2、配置xinetd,用xinetd来启动cvs服务器:
进入到/etc/xinetd.d/目录,在此目录下编辑一个名字为cvspserver的文本文件,使用cvspserver作为文件名是因为在/etc/services中的入口名字是cvspserver。编辑如下:
service cvspserver
{
disable = no
protocol = tcp
socket_type = stream
port = 2401
wait = no
user = root
env = HOME=
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
}
注意:a、service后面的名称一定要和你在/etc/service文件中的cvs服务名称一样;b、env = HOME=这一行的目的就是为了解决在执行一些cvs操作时产生的读取/root/.cvsignore文件的错误,上面env那行的意思就是在运行cvs服务的时候将环境变量HOME置空,这样虽然执行cvs的用户是root,但是由于没有了HOME这个环境变量,所以cvs就不会在去读取/root/.cvsignore文件了。
3、配置cvs用户组和cvsroot用户
首先建立一个用户组cvs,记下cvs组ID。然后添加一个用户cvsroot,然后修改/etc/passwd文件,把cvsroot用户的组ID改为
刚才新建的cvs组的组ID。这样在/home目录下就会有一个/cvsroot目录。修改/home/cvsroot的权限:#chomd 771
/home/cvsroot
4、对cvs进行初始化:
要使用cvs服务器首先要初始化cvs服务器的根目录,这样以后创建的cvs项目都将建立在这个目录下:# cvs -d /home/cvsroot init
5、登录cvs服务器(在linux下登录):
#cvs -d :pserver:cvsroot@host:/home/cvsroot login
CVS password://输入用户cvsroot的口令;
如果没有出现其它的任何提示就表示登录成功了,否则要根据提示进行相应的修改。 下面对登录命令的语法进行说明:
其中,:pserver表示采用pserver方式进行用户登录认证,一般的CVS服务器都采用这
种方式,当然也可以采用其它方式,具体参考相应的资料;
:cvsroot表示要登录的用户名,只要是cvs组的成员都可以,如:cather;
@host表示要登录的服务器,可以是DNS名,也可以是IP地址,如:10.104.1.204;
:/home/cvsroot表示CVS在服务器上的目录,也可以是其它目录(由第6中你所
指定的用来做init初始化的目录决定);
提示:也可以把export CVSROOT=":pserver:jchuang"@192.168.0.8:/home/cvsroot这一句直
接写在用户的初始化文件中(如:.bash_profile),这样用户每次登录时,只需输入:
#cvs login
然后输入相应的口令就可以登录到cvs服务器上。
b、如果是本地登录,可以直接把export CVSROOT="/home/cvsroot"这一句写在用户的初
始化文件如:.bash_profile中;然后直接输入#cvs login,再输入相应的口令就可以登录到cvs服务器上了。
二、WinCVS的配置
1、WinCVS简介:
WinCVS是CVS的一个客户端软件,它运行在Windows上,用来在Windows上登录CVS服务器,然后进行一些CVS相关的操作与管理。由于当前很多的企业内部都采用Linux/Unix做服务器,而用Windows做客户端,所以,WinCVS与CVS服务器配合使用将组成最强有力的版本控制与管理的系统之一。
2、WinCVS的下载与安装;
最新的WinCVS可以从http://sourceforge.net/project/showfiles.php?group_id=10072地址下载到,也可以在http://sourceforge.net/project 上下载到最新的或其它版本的WinCVS。下载到相应的版本后根据向导进行安装,已经要使用CVS的用户,安装这个WinCVS应该没什么问题吧!
3、配置WinCVS:
a、一般选项的设置,选择Admin->references…,出现如下界面:
第一、Authentication:用来配置cvs服务器的认证方式,可以从下拉框中选择其它的认证方式,不过一般只要选择默认的pserver方式就可以,要注意的是必须与cvs服务器配置时所指定的认证方式一致;
第二、Path:用来配置cvs在服务器上的主目录路径,也就是服务器上用进行cvs初始化的目录,如:/home/cvsroot;
第三、Host Address:用来配置cvs服务器所在服务器的地址,可以是IP地址,也可以是DNS名,如:10.104.1.204;
第四、User name:用来配置要使用些WinCVS来登录CVS服务器的用户名,如:cvsyxwu,用户的登录必须由管理员把其添加cvs用户组中;
第五、CVSROOT:此项一般都不需要用户进行修改,用户在输入上边的几个选项时,系统将自动根据用户的输入生成此项的相应内容。
b、全局选项的设置,在上一个界面上选择“Globals”:
此项的配置主要是要注意这几选项:
第一,Checkout read-only不要选上,否则,checkout出来的源代码将不允许用户进行
修改,并且此选项默认是选中的;
第二,Prune (remove) empty directories也不要选上,否则,会自动删除空目录;
第三,对一般配置没有特殊要求的,把Dirty files support、Supply control when adding
与TCP/IP compression选项选中;
4、登录服务器:
选择Admin->;login,将出现如下对话框要求用户输入登录口令
输入口令后,选择“OK”按钮,如果CVS服务器与WinCVS的配置都没出错的话,将在CVS的状态栏中提示:
cvs -z9 -d :pserver:cvsyxwu@10.104.1.204:/home/cvsroot login
Logging in to :pserver:cvsyxwu@10.104.1.204:2401/home/cvsroot
***** CVS exited normally with code 0 *****
code 0表示正确的登录;而如果出错的话,将是code 1,那么要根据错误的提示进行相应的修改。