CVS与配置管理研究.ppt_第1页
CVS与配置管理研究.ppt_第2页
CVS与配置管理研究.ppt_第3页
CVS与配置管理研究.ppt_第4页
CVS与配置管理研究.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CVS与配置管理,刘学敏,CVS是什么,Concurrent Versions System的缩写, Concurrent有并发的, 协作的, 一致的等含义. CVS是一个版本控制系统。使用它,可以记录下源文件的历史,使用CVS的好处,保存源代码的全部历史,还可以保存相关的软件文档等. CVS用一种聪明的办法(仅仅保存不同版本之间的区别)来保存一个文件的所有版本在一个文件里 支持团队协同开发.提供多种途径帮助小组成员之间的版本同步、开发通信,辅助解决代码冲突,大大提高协作效率。 帮助发现bug.经过对不同版本的比较,开发者能较方便地找出是哪一次变动引起bug,CVS的安装,软件安装 http:

2、/上现在源码, 看安装文件夹下的INSTALL文件,手册没有关于软件安装的指导. ./configure 常用指定目录的方式/configure -prefix=/usr/local/gnu make make install,CVS的安装,服务配置 9-可以单独(standalone)运行,也可以inet super_server的方式. 前一种比较占资源,但速度快,一般将可执行的命令放在/etc/rc.d/rdc.local下即可 后一种节省系统资源,但比较慢,CVS的安装,# cd /etc/xinetd.d service cvspserver disab

3、le = no flags = REUSE socket_type = stream wait = no user = root server= /usr/bin/cvs server_args= -f -allow-root=/home2/cvsroot/project1 -allow-root=/home2/cvsroot/project2 pserver ,CVS的安装,由于xinetd的server_args长度限制,想运行很多的单个仓库的时候,可以这么做 server = /cvsroot/cvs.run 编写cvs.run脚本 # vi /cvsroot/cvs.run /usr/

4、bin/cvs -f -allow-root=/cvsroot/project1 -allow-root=/cvsroot/project2 pserver,CVS的安装,建立源码仓库 cvs -d /usr/local/cvsroot init . 会在cvsroot下创建一个CVSROOT目录,存放管理文件.,CVS的使用,在版本控制中,存储在源码库中的文件统称为历史文件(history files),这些文件的名称是在对应在工作目录中的文件名称后面加上,v,历史文件中包括有足够的信息来再创建文件的任何一个修订版,CVS的使用,控制访问权限 有两种方法: 一是使用CVS自己的用户认证机制

5、二是使用linux系统的用户认证机制.,CVS的使用,将config文件的#SystemAuth=no前的注释去掉;在config下增加passwd文件,格式如下: trotter:*:cvsroot gary:*:lsf trotter,是登陆的用户名 , 中间的*是加密后的密码, cvsroot表明登陆后 的权限相当于本地用户cvs的权限. trotter与系统中的用户没有关系,文件权限,根据对文件所在目录的权限决定对下面文件的权限,所有的,v文件全部被设置成只读,并且,不能改变那些文件的权限。在源码库里的目录对于在每个目录里都有修改文件权限的人来说才是可写的。这也意味着仅仅能控制每个目录

6、下文件的存取,无法对单个的文件施加权限的控制。,权限策略,针对项目建立用户组,对该用户组授权. 模块的顶级目录和下面的可由项目组的所有的人读写的子目录的mode设成770或者2770,而对于某些属主可读写,同组可读的,设成750或者2750. 注意:在这种情况下,须改一下config文件,改成不在当前模块目录下生成锁文件,把锁文件集中到一个所有用户都有读写权限的目录。 LockDir=/var/lock/cvs,CVS的使用,建立模块 在逻辑上把一组目录、文件组成一个项目,用一个模块来定义它。 模块能容易地把相关的目录和文件关联起来 可以在CVSROOT下的modules中定义。最简单的方式

7、mname options dir files. mname 模块名 dir:模块相对于$CVSROOT的路径 通过导入模块操作来创建模块.先建立文件夹,然后设置属主,用户 组,mod等,然后导入操作,对于个别的文件夹设置mod. 模块是相对的,模块中可以有子模块.模块的定义不是严格需要的,在 checkout时将任何一级的目录视为模块不会出问题的。,什么是标签(tag),对于大多数CVS用户来说,不需要考虑版本的修订号,他们只要知道CVS已经自动地加上了类似1.1, 1.2之类的修订号就可以了。如果用户想跟踪许多文件的一系列版本号,例如一个特别的发布版本,使用了一个特殊的标签(tag)作为修

8、订号,这个符号标记的功能和每个文件的数值修订号的功能是相同的。 Tag:符号形式的修订号.可以对一个文件,多个文件,模块或者子模块使用.标签名称必须以大写或者小写字母开始,可以包括大写和小写字母,数字,-,和_。,什么是分支(branch),CVS允许修改代码到不同的开发线上,这就是分支(branch)。当改变一个分支中的文件时,这些更改不会出现在开发主干(main trunk)和其它分支中。 在这之后你可以使用合并(merging)把这些变更从一个分支移动到另一个分支(或主开发主干),分支适用的情况,假定tc.c发行版1.0已完成。正在继续开发tc.c,计划在2个月后发行1.1的版本。不久客

9、户开始抱怨说代码有些问题,检出了1.0的发行版,找到了这个错误(这将会有一个小小的更正)。但是,当前代码的版本是处在一个不稳的状态,并且在下一个月才能有希望稳定下来。这样就没法基于最新代码去发行一个修复错误的版本。 这种情况下就可以去创建一个分支(branch),分支所有文件是构建于tc的1.0发行版。可以修改这分支而不影响到主干。当修订完成时,你可以选定是否要把它同主干合并或继续保留在这个分支里。,wincvs的使用,点击系统_ 配置,wincvs的使用,登陆,导入模块,导出模块,导出模块,导出模块,更新文件或者模块,更新文件或者模块,更新文件或者模块,与当前版本合并。,提交修改,增加文件,

10、1对于目录不存在,先增加目录。点击“修改”“添加选择的文件”,将目录加入。 2目录存在,选中要添加的文件。三种方式:添加,二进制添加,unicode添加。 此时文件还没真正入库。 3.提交修改。,创建或删除标记,创建分支,查看文件状态,选择文件,右键“标记状态” cvs status -v rdmis.jpx (in directory E:cvsfilesrdmis开发库源代码) = File: rdmis.jpx Status: Locally Modified Working revision:1.5 Repository revision:1.5/var/cvsroot/rdmis/开

11、发库/源代码/rdmis.jpx,v Sticky Tag:(none) Sticky Date:(none) Sticky Options:(none) Existing Tags: vdfdf (revision: 1.5) version12 (branch: 1.1.2) version10 (revision: 1.1) * CVS exited normally with code 0 *,文件版本历史,右键选择版本历史,查看文件日志信息,选择文件,右键“标记状态” Working file : rdmis.jpx Head revision : 1.5 Branch revisi

12、on : Locks : strict Access : Symbolic names : 1.5 : vdfdf : version12 1.1 : version10 Keyword substitution : kv Total revisions : 5 Selected revisions : 5 Description :,查看文件日志信息,Revision : 1.5 Date : 2004/7/9 4:47:8 Author : tiger State : Exp Lines : +14 -12 Description : JBuilder Project fi

13、le update - Revision : 1.4 Date : 2004/7/1 3:24:8 Author : tiger State : Exp Lines : +2 -25 Description : JBuilder Project file update,文件比较,文件比较,现有文件与服务器上文件的比较 与某一分支、版本的比较 指定的两个分支、版本件间的比较。,56c67 prompt=kaoQin.getRDKaoQinMonthReportPrompt(startDate,endDate,isKaoQinManager); 145c156 - ,wincvs的使用,文件删除

14、选择文件,单击“修改”下的“删除选择的文件”,将本地的文件删除,并标记为删除状态。然后选择“修改”下的“移除”,将服务器上的文件删除。本地显示删除状态。单击添加会恢复回来。,配置管理,配置管理标识在给定时间点上的软件配置,系统的控制对配置的更改,并且维护在整个软件生命周期中配置的完整性和可跟踪性。它使软件过程的可视化变得具体。,配置管理的目标,1. 软件配置管理的活动是有计划的。 2. 所选择的软件工作产品是经过标识、受到控制并具有可用性的。 3. 所标识工作产品的变更要受到控制。 4. 软件基线的状态和内容要通知到受影响的组和个人,基本术语,配置标识 版本控制 基线,配置标识,为产品的结构,

15、产品的构件及其类型分配唯一的标识符,并以某种形式提供对它们的存取,版本控制,通过建立产品基线,控制软件产品的发布和在整个软件生命周期中对软件产品的修改,如它将解决哪些修改会在该产品的最新版本中实现的问题,基线(Baseline),定义:在配置管理系统中,基线就是一个CI或一组CIs在其生命周期的不同时间点上通过正式评审而进入正式受控的一种状态,而这个过程被称为“基线化”。基线是被评审过的一个或多个软件配置项。 每一个基线都是其下一步开发的出发点和参考点。基线确定了元素(配置项)的一个版本,且只确定一个版本。一般情况下,基线一般在指定的里程碑处创建,并与项目中的里程碑保持同步。,基线(Baseline),属性:通过正式的评审过程建立基线存在于基线库中,对基线的变更接受更高权限的控制基线是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论