• <ins id='hgmti'></ins>

      <code id='hgmti'><strong id='hgmti'></strong></code>

      1. <tr id='hgmti'><strong id='hgmti'></strong><small id='hgmti'></small><button id='hgmti'></button><li id='hgmti'><noscript id='hgmti'><big id='hgmti'></big><dt id='hgmti'></dt></noscript></li></tr><ol id='hgmti'><table id='hgmti'><blockquote id='hgmti'><tbody id='hgmti'></tbody></blockquote></table></ol><u id='hgmti'></u><kbd id='hgmti'><kbd id='hgmti'></kbd></kbd>
      2. <i id='hgmti'><div id='hgmti'><ins id='hgmti'></ins></div></i>
        <i id='hgmti'></i>

          <span id='hgmti'></span>

        1. <acronym id='hgmti'><em id='hgmti'></em><td id='hgmti'><div id='hgmti'></div></td></acronym><address id='hgmti'><big id='hgmti'><big id='hgmti'></big><legend id='hgmti'></legend></big></address>

        2. <fieldset id='hgmti'></fieldset>
            <dl id='hgmti'></dl>

            Linux下CVS的安装配置与操作命令全解析

            • 时间:
            • 浏览:6
            • 来源:124软件资讯网

                在先容CVS下令之前,先说点此外

                如以前说,堆栈内除乐源文件外,还包罗一系列的治理文件.位于$CVSROOT/CVSROOT

                修改治理文件的要领等同于源代码文件,使用CVS下令提取和修改.

                下面形貌每个文件的用途:

                checkoutlist 支持CVSROOT目录的其它治理文件,允许为种种CVS下令定置信息

                commitinfo 在cvs commit下令执行时,这个文件指定乐文件提交时执行的下令

                cvswrappers 界说乐一个包装法式当文件挂号或检取时就会执行.

                editinfo 允许你在commit下令启动前在日志信息被记载后执行的剧本

                history 跟踪所有影响堆栈的下令

                loginfo 类似coimmitinfo, 只是在文件提交后执行

                modules 允许为一组文件界说一个符号,否则必须为每一个要引用的文件

                指定部门路径名(相对于$CVSROOT)

                nitify 控制从/"watch/"来的通知./"watch/"由/"cvs watch add/"和/"cvs edit/"

                设置

                rcsinfo 为commit log回话指定一个模板.

                taginfo 界说乐在恣意/"tag/"操作后执行的法式.

                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

                CVS服务器的设置

                安装完之后的第一件事就是要设置CVS服务器的设置文件  ,使其能正常的事情 。首先在/etc/services文件中添加cvspserver  ,使其成为Linux的一种服务也就是cvs服务器例程的入口 ,设置如下:

                cvspserver 2401/tcp # cvs client/server operations

                cvspserver 2401/udp # cvs client/server operations

                若是文件中已经存在上面的两行文字  ,就不用添加了  。

                设置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

                CVS的情况变量

                CVS使用乐几个情况变量

                CVSROOT 堆栈根目录的完整路径名

                CVSREAD 若是设置,讲明在checkout操作时所有的文件都置成只读

                CVSBIN CVS使用乐许多RCS的下令,指定乐RCS工具的路径

                CVSEDITOR 指定用户誊写日志信息所使用的编辑器

                CVS_RSH 启动一个远程CVS服务器时,所使用的shell的名称

                CVS_SERVER 决议/"cvs server/"的名字,缺省是CVS

                CVSWRAPPERS cvswrapper剧本, 用来指定包装文件名.

                要害字

                治理源文件的一种手艺叫/"要害字替换/".在每次执行/"cvs commit/"操作后

                源文件的某些要害字会被替换为可用的词

                $AUTHOR$ 用户名

                $Data$ 挂号时的时间

                $Header$ 尺度的首部,包罗RCS的完整路径名,日期,作者

                $Id$ 除RCS文件名不完整外与$Header$同.

                $Log$ 包罗RCS的完整路径名,版本号,日期,作者和在提交时提供的日志信息.

                $RCSfile$ 包罗RCS的文件名,不包罗路径名

                $Revision$ 分配的版本号

                $Source$ RCS文件的完整名

                $State$ 分配的版本的状态,由 cvs admin -s 分配.

                例:

                在cvs commit之前,main.c里有

                static char *rcsid=/"$Id$/";

                执行cvs commit后

                main.c的转业变为:

                static char *rcsid=/"$Id: main.c,v 1.2 1999/04/29 15:10:14 trimblef Exp$/";

                下面最先说说CVS的下令

                我们已下面堆栈的数据为例

                $CVSROOT

                --CVSROOT

                --project

                --src

                --main

                --main.c

                --main.h

                --print

                --print.c

                --print.h

                --term

                --term.c

                --term.h

                CVS checkout 下令

                从堆栈提取指定的文件到当前目录,并建设同样的结构,并建立CVS目录

                例

                代码如下:

                bash$ cvs checkout project

                bash$ cvs checkout project/src/main

                为使用便利,我们可以对一个目录建一个缩写,要领是修改$CVSROOT/CVSROOT/下的

                modules文件.(固然是用cvs 下令完成)

                代码如下:

                cvs checkout CVSROOT/modules

                cd CVSROOT

                vi modules

                我们在文件尾加上

                代码如下:

                src project/src

                print project/src/print

                cvs commit

                以后我们就可以用cvs checkout print来取代

                cvs checkout project/src/print

                cvs checkout下令缺省是获得最新版本.我们也可以获得某一个老版本

                代码如下:

                cvs checkout -r 1.1 print

                将print的1.1版的代码取出.

                cvs checkout的详细用法见cvs -H checkout的输出.

                CVS commit 下令

                在对文件的修改完成后,用cvs commit提交到堆栈.

                代码如下:

                cvs commit -m /"Update by xxxxx/" project

                cvs commit -m /"Update main.c/" main.c

                提交完成后,当前的版本号会更新,如原来为1.1,现为1.2. 这两个版本都在

                堆栈的主干(maintrunk)上.

                -m选项可以记载有关提交的注释.若是没有指定-m选项,在情况变量CVSEDITOR

                中指定的编辑器被挪用(vi是缺省的),提醒键入文本,修改记载注释.

                CVS update

                CVS允许多人同时对一个文件举行修改.

                假设泥正在修改文件的一部门,现想合并更新自己的当地拷贝(checkout)和

                另一小我私家所做的修改(已经放在堆栈里),可用cvs update

                代码如下:

                cvs update

                CVS tag , CVS rtag

                建立分支可以使用户对一些文件举行修改而不会影响主干(当commit时).

                建立分支首先为拟修改的某些文件建立一个标签(tag),标签是赋于一个文件或一组文件的符号.在源代码的生命周期里,组成一组模块的文件被赋于相同的标签.

                建立标签:在事情目录里执行cvs tag

                例: 为src建立标签:

                代码如下:

                cvs checkout src

                cvs tag release-1-0

                标签建立后, 就可以为其建立一个分支:

                代码如下:

                cvs rtag -b -r release-1-0 release-1-0-path print

                -b :建立分支

                -r release-1-0 :指定存在的标签

                releas-1-0-patch:分支

                print: 模块名

                合并

                使用cvs update -j 选项可以将分支上的改变与当地文件拷贝合并.

                代码如下:

                cvs update -j release-1-0 print.c

                cvs release

                对源文件作须要修改后, 可以用cvs release 删除当地事情拷贝

                并通知其他开发者这个模块不再使用.

                代码如下:

                cvs release -d print

                -d : 删除

                print: 目录

                冲突

                由于CVS允许多人同时修改统一文件,冲突是不行制止的.例如当两人

                同时修改统一文件的统一行时.

                这时,如用cvs update 更新,CVS检测到冲突的存在,它会将冲突的代码

                用/"<<<<<<<<<<<<<<>>>>>>>>>>>>>>/"标识.这时需手工处置惩罚这段代码.与引起

                冲突的开发者协商,并对文件修改后即可用cvs commit提交.