1、    CVS简述
            2、   
            CVS服务器的安装
            默认情况下,CVS在Redhat Linux中已经安装,这一点可以通过在Linux命令行的情况下运行:
            rpm –q
            cvs
            如果出现CVS的版本信息就证明已经安装成功了。
            CVS服务器安装包可以从网上的很多地方下载,也可以到CVS的官方网站进行下载。根据你所使用的系统,下载相应的版本,然后进行安装。因为我们的项目是在Redhat
            Linux下使用CVS服务器进行版本管理,所以本文将主要基于Redhat
            Linux进行介绍。首先下载CVS服务器的rpm包,当然也可以下载其它方式的包如源程序包,然后采用以下命令进行安装: 
            rpm -ivh cvs-1.11.7-1.i386.rpm
            3、    CVS服务器的配置
                  
            安装完之后的第一件事就是要配置CVS服务器的配置文件,使其能正常的工作。首先在/etc/services文件中添加cvspserver,使其成为Linux的一种服务也就是cvs服务器例程的入口,配置如下:
            
            cvspserver          2401/tcp                           # cvs client/server
            operations 
            cvspserver          2401/udp                          # cvs
            client/server operations 
            如果文件中已经存在上面的两行文字,就不用添加了。
            4、   
            配置xinetd,用xinetd来启动CVS验证服务器:
            进入到/etc/xinetd.d/目录,然后编辑一个文本文件,名字一定要与/etc/services中的入口名字cvspserver一致,所以这里用cvspserver作为文件名,文件的内容如下所示:
            
            service cvspserver
            {
                    disable = no
                    flags =
            REUSE
                    socket_type = stream
                    wait = no
                    user =
            root
                    server = /usr/bin/cvs
                    server_args = -f
            --allow-root=/usr/cvsroot pserver
                    log_on_failure +=
            USERID
            }
            编辑文件之后测试cvspserver服务是否配置成功。
            执行
            /etc/init.d/xinetd
            restart
            重新启动服务,启动成功之后,执行下面的语句,验证服务是否启动正常:
            telnet localhost
            2401
            如果出现如下字样:
            Trying 127.0.0.1...
            Connected to localhost.
            Escape
            character is '^]'.
            输入hi,会继续输出如下字样
            cvs [pserver aborted]: bad auth protocol
            start: hi
            Connection closed by foreign
            host.
            出现以上的现象表示CVS用户验证服务器已经配置成功。
            如果出现如下字样,表示配置不成功,请重新检查以上的配置:
            Trying
            127.0.0.1...
            telnet: connect to address 127.0.0.1: Connection
            refused
            5、   
            配置CVS用户:
            首先建立一个用户组cvs,可以使用groupadd或者addgroup命名,也可以直接编辑/etc/group文件添加这个组,然后添加一个用户cvsuser:
            groupadd
            cvs
            useradd cvsuser –g cvs 
            passwd
            cvsuser
            设置新的密码。
            在/usr目录下建立cvsroot目录(也可以在其它的目录下建,但是应该和cvspserver文件中的选项一致),然后修改/usr/cvsroot的属主及属性:
            cd
            /usr
            mkdir cvsroot
            chown –R cvsuser.cvs cvsroot
            chmod –R 771
            cvsroot
            6、   
            初始化CVS服务器
            安装完CVS服务器之后的另一件重要的事情就是要初始化CVS服务器的根目录,以后创建的CVS项目都将建立在这个目录下,采用的命令如下:
            cvs
            –d /usr/cvsroot
            init
            如果没有任何提示,表示初始化成功。初始化成功之后,会在/usr/cvsroot目录中创建CVSROOT目录,目录中有如下文件:
            -r--r--r--   
            1 root     root          493 Apr 5 20:19 checkoutlist
            -r--r--r--    1
            root     root          693 Apr 5 20:19 checkoutlist,v
            -r--r--r--    1
            root     root          760 Apr 5 20:19 commitinfo
            -r--r--r--    1 root    
            root          960 Apr 5 20:19 commitinfo,v
            -r--r--r--    1 root    
            root          527 Apr 5 20:19 config
            -r--r--r--    1 root     root         
            727 Apr 5 20:19 config,v
            -r--r--r--    1 root     root          753 Apr 5
            20:19 cvswrappers
            -r--r--r--    1 root     root          953 Apr 5 20:19
            cvswrappers,v
            -r--r--r--    1 root     root         1025 Apr 5 20:19
            editinfo
            -r--r--r--    1 root     root         1225 Apr 5 20:19
            editinfo,v
            drwxrwxr-x    2 root     root         4096 Apr 5 20:19
            Emptydir
            -rw-rw-rw-    1 root     root            0 Apr 5 20:19
            history
            -r--r--r--    1 root     root         1141 Apr 5 20:19
            loginfo
            -r--r--r--    1 root     root         1341 Apr 5 20:19
            loginfo,v
            -r--r--r--    1 root     root         1151 Apr 5 20:19
            modules
            -r--r--r--    1 root     root         1351 Apr 5 20:19
            modules,v
            -r--r--r--    1 root     root          564 Apr 5 20:19
            notify
            -r--r--r--    1 root     root          764 Apr 5 20:19
            notify,v
            -r--r--r--    1 root     root          649 Apr 5 20:19
            rcsinfo
            -r--r--r--    1 root     root          849 Apr 5 20:19
            rcsinfo,v
            -r--r--r--    1 root     root          879 Apr 5 20:19
            taginfo
            -r--r--r--    1 root     root         1079 Apr 5 20:19
            taginfo,v
            -rw-rw-rw-    1 root     root            0 Apr 5 20:19
            val-tags
            -r--r--r--    1 root     root         1026 Apr 5 20:19
            verifymsg
            -r--r--r--    1 root     root         1226 Apr 5 20:19
            verifymsg,v
            这样目录/usr/cvsroot就成为CVS服务器的根目录,以后创建的目录都将默认的存放在这个目录下。
            7、   
            登录cvs服务器(在Linux或其它Unix系统下进行登录的情况):
            输入如下命令:
            cvs -d
            :pserver:cvsuser@localhost:/usr/cvsroot
            login
            提示输入密码,输入上面设置的密码,如果没有任何提示,就证明成功登录了
            第一次登錄會有cvs login: warning: failed to open /home/cvsuser/.cvspass for reading: No such file or directory類似的提示信息.以后登錄就不會有了.
            
            登录成功之后在当前用户的$HOME目录中生成.cvspass文件,可以利用vi对文件进行察看。
            由于以“.”开头的文件在Linux中是隐藏的,所以可以利用如下命令进行察看:
            ls
            –a
            这个文件记载了用户的登录信息。执行注销命令可以删除该文件中的登录信息
            cvs -d
            :pserver:cvsuser@localhost:/usr/cvsroot logout
            下面对登录命令的语法进行说明:
            
            其中,:pserver表示采用pserver方式进行用户登录认证,一般的CVS服务器都采用这种方式,当然也可以采用其它方式,具体参考相应的资料;
            
            :cvsuser表示要登录的用户名,只要是cvs组的成员都可以,如:cvsuser;
            
            @host表示要登录的服务器,可以是DNS名,也可以是IP地址,如:192.168.0.1;
            
            :/usr/cvsroot表示CVS在服务器上的目录,也可以是其它目录(由第6中你所指定的用来做init初始化的目录决定);
            
            提示:
            a、也可以把export
            CVSROOT=:pserver:cvsuser@192.168.0.1:/usr/cvsroot这一句直接写在用户的初始化文件中(如:.bash_profile),这样用户每次登录时,只需输入:
            
            cvs login 
            然后输入相应的口令就可以登录到cvs服务器上。 
            b、如果是本地登录,可以直接把export
            CVSROOT=/usr/cvsroot这一句写在用户的初始化文件如:/etc/profile中;然后执行如下命令使环境变量生效:
            source
            /etc/profile
            8、   
            向CVS添加新的项目模块
            一般我们都已经有一个或多个项目了,这样我们可以用下面步骤生成一个新的CVS项目。将一个工程文件置于CVS中进行版本控制,在CVS
            术语中称作导入(import)。从名字上就可以看出,在导入前需要为此作些准备工作。
            输入操作的基本要求是有个"干净"的目录结构。"干净"的意思是不需要版本控制的文件都被移走了(如编译生成的文件,备份文件等等)。如果工程已经开始一段时间了,这就显得很重要。在目录中也许有些是不打算将其置于版本控制下的文件,但是又想将他们放在这里,这种情况下,你要在输入之前将它们移走,然后再移回来。
            注意的是CVS
            认为空目录是不存在的。如果想增加一个既不包含文件又不包含子目录的目录,需要在其下创建一个哑文件。建议你创建一个名为 README.txt
            的文件,其内容为对目录的简要说明。
            进入到已有项目的目录,比如叫 cvstest:
            cd
            /home/cvsuser/cvstest
            运行命令将项目文件导入到cvs仓库中:
            cvs import -m "this is a cvstest
            project" cvstest tengtu
            start                                                               
            
            说明:import 是cvs的命令之一,表示向cvs仓库输入项目文件. 
            -m参数后面的字串是描述文本,对项目进行描述,如果不加 -m
            参数,那么cvs会自动运行一个编辑器(一般是vi,但是可以通过修改环境变量EDITOR来改成你喜欢用的编辑器)让你输入信息,cvstest
            是项目名称(实际上是仓库名,在CVS服务器上会存储在以这个名字命名的仓库里)
            tengtu是这个厂商标记.
            start 是每次 import
            标识文件的输入层次的标记。
            9、   
            从cvs本地服务器上checkout相应的模块:
            a、如果是在CVS服务器所在计算机上,可以直接采用如下命令: 
            cvs checkout
            cvstest 
            这样将把cvstest项目模块checkout到当前目录下。
            
            b、如果是在远程运行Linux或其它Unix系统上,在第7中登录之后也可以用上边的命令把相应的项目模块checkout到当前目录下。
            
            另外,如果是在windows端进行checkout,可以采用WinCVS,那么还要对WinCVS进行其它的一些配置,下一部分将具体介绍它的配置方法。