您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 软件配置管理(SCM)相关概念
1.1软件配置管理(SCM)相关概念9.1.1版本管理不同产品的简单介绍配置管理软件分类:软件的版本管理(CVS是软件版本管理的工具)构件管理缺陷和跟踪管理产品介绍:1)高端产品如:RationalclearCase2)中端产品如:PVCS(pvcsversionmanager,pvcstracker)、Perforce3)低端产品vss1.2CVS概述•cvs是什么cvs是ConcurrentVersionsSystem的缩写。是强大而复杂的现代版本控制系统。•cvs的特点免费:作为开放源代码的世界杰作,CVS是免费的。在中国,北京国联捷讯信息技术有限公司()为需要CVS技术支持的公司提供咨询。跨平台:CVS支持所有的操作系统,而且作为典型的客户/服务器模式的软件,CVS支持跨平台开发,cvs可以用在AIX、HPUX、Solaris、SUNOS、Linux、Windows等不同的平台上开发应用,而共用一个CVS服务器。强大的分布式开发支持:CVS一直以支持分布式开发作为其基本特征。支持并行开发:允许多个开发人员对同一个文件进行开发工作,并对多个开发者的工作进行整合。强大的可塑性:不论是一个源代码组成的项目开发管理,还是代码量超过几百兆的项目,均管理自如。触发器及定制功能:这种功能帮助开发者将CVS和变动/跟踪系统紧密集成,以形成完整的软件配置管理系统(SCM)。1.3CVS的安装和配置•在unix/linux平台上安装CVS服务器安装是超级用户执行的。假设选择一台Linux服务器,假设主机名为hostcvs。在cvs权威网站www.cvshome.org上下载包cvs-1.11.1p1.tar.gz(在linux中可能已经包含后CVS)。运行:[root@hostcvs/root]$gzip–dvfcvs-1.11.1p1.tar.gz[root@hostcvs/root]$tar–xvfcvs-1.11.1p1.tar进入目录cvs-1.11.1p1,运行:[root@hostcvs/root]$./configure[root@hostcvs/root]$make[root@hostcvs/root]$makeinstall如果未报错误,则CVS服务器安装OK了。whereiscvs•指定CVS仓库cvs仓库(Repository)是保存软件资源的设备,可以根据需要选择一目录作为库的位置,如,/cvsap,用超级用户建相应目录。mkdir/cvssrcmkdir/cvssrc/master•CVS服务器的初始化在确定CVS仓库位置后,就可以初始化CVS服务器。在初始化的过程中CVS创建其文件系统,并产生原始内容。在目录/cvsap目录下,以超级用户身份在提示符下执行:[root@hostcvs/root]$[root@hostcvs/root]$cvs–d/cvssrc/masterinit其中的目录project为项目源代码的资源目录。执行命令:[root@hostcvs/root]$ls/cvssrc/masterCVSROOT[root@hostcvs/root]$ls–a/cvssrc/master/CVSROOT该目录下是原始内容,如果该目录为空,则初始化失败。•用户组和用户帐号的设立用户组和帐号的设立原则:进行配置管理的用户和进行开发的用户分别设立不同的用户组,如,cvsadmin和cvsuser两个组,在两个不同组上建立管理用户和开发用户。CVS的权限设定的原则是:CVS用户必须拥有对/cvsap/src/master/CVSROOT目录及其中所有文件的读权限。CVS用户必须拥有对/cvsap/src/master/CVSROOT目录下history文件的写权限。CVS用户如果希望对系统中的模块(如,project)代码等资源的修改,必须对该目录有写权限。对于普通的开发用户应该设为:对/cvsap/src/master/CVSROOT目录及其下的所有文件有读权限;对/cvsap/src/master/CVSROOT/history下的文件有写权限;对某个项目(模块)下的文件有读写权限(如,project)。•区分管理员和普通用户的权限设定1)添加cvsadmin用户组2)添加cvsuser用户组3)添加CVS管理员帐号到cvsadmin4)添加CVS普通用户到cvsuser5)让cvs管理员拥有对配置目录及其下文件的读写权限,同时给cvs的普通用户对配置目录及其下文件的读权限。[root@cvshost/root]$chgrp–Rcvsadmin/cvsap/src/master/CVSROOT[root@cvshost/root]$chmod–R064\/cvsap/src/master/CVSROOT6)给cvs普通用户对目录/cvsap/src/master/project的读写权限[root@cvshost/root]$chgrp–Rcvsuser/cvsap/src/master/project[root@cvshost/root]$chmod–R060/cvsap/src/master/project•CVS的口令服务器CVS口令服务器配置的目的是使cvs用户的远程计算机能访问CVS服务器。其方法分两步:1)以超级用户在hostcvs服务器上的/etc/services的文件中添加一行:cvspserver2401/tcp。最简单的方法是执行命令:echocvspserver2401/tcp/etc/services。注意:端口号2401不要重。这种方式是IBMUNIX系统。2)如果使用的是Redhat6.2及以前的版本或使用inetd超级服务器的UNIX版本,用超级用户在/etc/inetd.conf文件中添加一行,加在末尾:cvspserverstreamtcpnowaitroot/usr/local/bin/cvscvs–f–allow–root=/cvsworkpserver。如果是Redhat7.1或其他新版本的Linux,则用超级用户身份打开/etc/xinetd.conf文件,并在文件中添加:servicecvspserver{port=2401socket_type=streamwait=nouser=rootserver=/usr/bin/cvsserver_args=-f-–allow-root=/cvssrc/masterpserverbind=本机器的IP地址}•启动inetd/xinetd超级服务器配置好的口令服务器是包在inetd/xinetd超级服务器内的一个程序。启动的方法为用超级用户登陆,执行命令:[root@hostcvs/root]$unsetHOME用来清除超级用户的$HOME的环境变量,否则执行CVS命令会出错。[root@hostcvs/root]$/etc/rc.d/init.d/inetdrestart也可能是/etc/init.d/inetdrestart。或者[root@hostcvs/root]$/etc/init.d/xinetdrestart至此,CVS服务器安装和配置工作完成。如果是HPUNIX则启动超级口令服务器的方法为:ps–ef|grepinetd找出inetd进程的进程号kill–HUPpid让inetd进程重新读入配置文件使得CVS服务生效•测试CVS口令服务器在cvshos服务器上,执行如下命令:[root@cvshost/root]$telnetlocalhost2401•客户端的安装和配置介绍CVSROOT环境变量设置格式:(19页)客户端的Unix/linux的安装和CVS服务器安装过程相同,这里不再赘述。CVSforunix/linux客户端的永久配置方法为:sh/ksh,用编辑器打开$HOME/.bash_profile文件添加:CVSROOT=:pserver:cloud1@10.60.40.34:/src/masterexportCVSROOTcsh,用编辑器打开$HOME/.cshrc文件,在文件的末尾添加:setenvCVSROOT:pserver:public@192.168.25.6:/cvssrc/master其中的public为客户端的用户在服务器端的帐户/用户名。CVSforWinCVS的永久配置为:在窗口中选择Admin--》Preferences并在General选项卡中输入,如图。关于unix/linux客户端的临时配置:sh/bash:[test@linuxtest]$exportCVSROOT=:pserver:public@192.168.25.6:/cvsap/src/mastercsh:[test@linuxtest]$setenvCVSROOT:pserver:public@192.168.25.6:/cvsap/src/master•测试远程访问CVSforunix/linux:[test@linuxtest]$cvslogincvspassword:WinCVS:AdminLogin输入口令即可。•在VisualStudio中集成CVS(23)1.4CVS工作原理及基本命令仓库的概念已经描述,在CVS库中CVS以一种特殊的文件格式(RCS)来保存这些资源。仓库按照目录和文件结构组织。仓库中每个目录对应一个项目,如:和cvsap/src/master在同一层次的目录除CVSROOT外,其他每个目录都应该是不同的项目。其保存了各个版本的文件,并记录了版本的修改信息。统一文件的不同版本之间具有派生关系,在版本库中只存储不同版本间的改动,从而节约空间。(29页)工作拷贝是指每个开发人员在开发过程中拥有一个独立于其他开发人员的整个软件项目的全部代码的拷贝,在客户端,它和主拷贝(仓库)构成了CVS客户/服务器模式。工作拷贝的每个目录中有一个CVS目录,其下的文件是cvs管理控制文件。(31页)cvs命令的格式:cvs[cvs-option]command[command-option]如:your_client$cvs–Qchecktest可以用命令:cvs--help-commands来查看cvs的命令。在winCVS中在commandlinesetting菜单中输入命令即可。•Init命令(初始化版本库)如:cvs–d/cvsap/src/masterinit•import命令从客户端登陆服务器。在客户端有目录,如,test,其中有源文件和子目录,将目录test下的内容加入服务器作为一个项目(如,project,test),即一个baseline。命令为:your_client$cdtestyour_client$cvslogin(loggingintoyourserver)cvspassword*****(你的服务器端cvs帐户口令)your_client$cvsimport–m“initialimport”testSSEstart该命令将当前目录(包含子目录)下的所有内容,都放进CVS系统中,其中,-m表示在命令中要加注释内容test为该项目名称SSE为厂商标识start为版本标记没有冲突表示创建新的项目仓库成功。在WinCVS中可以在菜单中实现。•checkout命令checkout命令是将我们选定的CVS服务器上指定仓库中的一个项目代码取到本地的工作目录下。如果要将仓库中的test项目的代码取到本地个人目录下,执行:your_client$cd$HOMEyour_client$cvscheckouttest项目代码会保存在个人目录$HOME/test下供你个人开发或修改。当你打开checkout出的源代码所在的目录,会发现代码中的每个目录(包括每个子目录)中均有名为CVS的子目录。这些目录并不属于代码,它是CVS系统使用的目录,其中保存着CVS管理文件。这是工作拷贝与普通目
本文标题:软件配置管理(SCM)相关概念
链接地址:https://www.777doc.com/doc-29226 .html