<ins id='vz8p'></ins>
<i id='vz8p'></i>

      1. <span id='vz8p'></span>

          <fieldset id='vz8p'></fieldset>
        1. <i id='vz8p'><div id='vz8p'><ins id='vz8p'></ins></div></i>
          <dl id='vz8p'></dl>
          <acronym id='vz8p'><em id='vz8p'></em><td id='vz8p'><div id='vz8p'></div></td></acronym><address id='vz8p'><big id='vz8p'><big id='vz8p'></big><legend id='vz8p'></legend></big></address>
        2. <tr id='vz8p'><strong id='vz8p'></strong><small id='vz8p'></small><button id='vz8p'></button><li id='vz8p'><noscript id='vz8p'><big id='vz8p'></big><dt id='vz8p'></dt></noscript></li></tr><ol id='vz8p'><table id='vz8p'><blockquote id='vz8p'><tbody id='vz8p'></tbody></blockquote></table></ol><u id='vz8p'></u><kbd id='vz8p'><kbd id='vz8p'></kbd></kbd>

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

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

          • 时间:
          • 浏览:13
          • 来源: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提交.