原创 cvs服务器与wincvs的配置

2007-11-18 10:39 3151 7 8 分类: 软件与OS

    大概是两年前,我从我一个考研的朋友那里听到关于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


}


注意:aservice后面的名称一定要和你在/etc/service文件中的cvs服务名称一样;benv = 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的配置


1WinCVS简介:


    WinCVSCVS的一个客户端软件,它运行在Windows上,用来在Windows上登录CVS服务器,然后进行一些CVS相关的操作与管理。由于当前很多的企业内部都采用Linux/Unix做服务器,而用Windows做客户端,所以,WinCVSCVS服务器配合使用将组成最强有力的版本控制与管理的系统之一。


2WinCVS的下载与安装;


   最新的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 supportSupply control when adding


TCP/IP compression选项选中;


4、登录服务器:


选择Admin->;login,将出现如下对话框要求用户输入登录口令


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


输入口令后,选择“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,那么要根据错误的提示进行相应的修改。


 


 

 

文章评论1条评论)

登录后参与讨论

用户99191 2007-11-18 10:44

自己顶一下,以资鼓励。
相关推荐阅读
用户99191 2008-07-03 22:38
14.9.2读取一个文件的属性
我们使用函数stat,fstat和lstat来检查文件的属性。这些函数使用struct stat对象来返回属性信息。所有这三个函数声明在头文件‘sys/stat.h’中。Int   stat(cons...
用户99191 2008-07-02 22:59
14.9.1文件属性的意义
14.9.1      文件属性的意义当你读取一个文件的属性时,会返回一个struct stat结构体。本小节接下来解释文件属性的名字、属性的数据类型以及它们所代表的含义。读取文件属性的函数参照14....
用户99191 2008-06-27 21:47
安凯面试
    6月24号安凯公司人资打电话给我,只是当时在培训没有接到,当时心就凉了感觉没戏了。没想到25号,人资又打电话给我通知我26号去面试,安凯的人资很负责。    26号下午坐车去面试,哪知早了两站...
用户99191 2008-06-15 22:04
翻译automake book9.1.5
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />这次翻译感觉很差,如果您有...
用户99191 2008-06-14 22:41
翻译automake book9.1.3
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />9.1.3 C++ Com...
用户99191 2008-06-13 22:53
翻译automake参考书9.1.2
There is a small amount of boiler-plate样板 that should be added to all header files, not least of whi...
我要评论
1
7
关闭 站长推荐上一条 /2 下一条