软件配置管理(SCM)相关概念36159.pptx
《软件配置管理(SCM)相关概念36159.pptx》由会员分享,可在线阅读,更多相关《软件配置管理(SCM)相关概念36159.pptx(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.1 1.1 软件配置管理(软件配置管理(SCMSCM)相关概念)相关概念9.1.1 版本管理不同产品的简单介绍配置管理软件分类:软件的版本管理(CVS是软件版本管理的工具)构件管理缺陷和跟踪管理产品介绍:1)高端产品如:Rational clearCase2)中端产品如:PVCS(pvcs version manager,pvcs tracker)、Perforce3)低端产品vss1.2 CVS1.2 CVS1.2 CVS1.2 CVS概述概述概述概述等不同的平台上开发应用,而共用一个CVS服务器。强大的分布式开发支持:CVS一直以支持分布式开发作为其基本特征。支持并行开发:允许多个开发
2、人员对同一个文件进行开发工作,并对多个开发者的工作进行整合。强大的可塑性:不论是一个源代码组成的项目开发管理,还是代码量超过几百兆的项目,均管理自如。触发器及定制功能:这种功能帮助开发者将CVS和变动/跟踪系统紧密集成,以形成完整的软件配置管理系统(SCM)。1.3 CVS1.3 CVS1.3 CVS1.3 CVS的安装和配置的安装和配置的安装和配置的安装和配置 如果未报错误,则CVS服务器安装OK了。whereis cvs指定指定CVSCVS仓库仓库 cvs仓库(Repository)是保存软件资源的设备,可以根据需要选择一目录作为库的位置,如,/cvsap,用超级用户建相应目录。mkdir
3、/cvssrc mkdir/cvssrc/masterCVSCVS服务器的初始化服务器的初始化 在确定CVS仓库位置后,就可以初始化CVS服务器。在初始化的过程中CVS创建其文件系统,并产生原始内容。在目录/cvsap目录下,以超级用户身份在提示符下执行:roothostcvs/root$roothostcvs/root$roothostcvs/root$cvs d/cvssrc/master initroothostcvs/root$cvs d/cvssrc/master init 其中的目录project为项目源代码的资源目录。执行命令:roothostcvs/root$ls /cvssr
4、c/masterroothostcvs/root$ls /cvssrc/master CVSROOT roothostcvs/root$ls a/cvssrc/master/CVSROOT roothostcvs/root$ls a/cvssrc/master/CVSROOT 该目录下是原始内容,如果该目录为空,则初始化失败。用户组和用户帐号的设立用户组和用户帐号的设立 用户组和帐号的设立原则:进行配置管理的用户和进行开发的用户分别设立不同的用户组,如,cvsadmin和cvsuser 两个组,在两个不同组上建立管理用户和开发用户。CVS的权限设定的原则是:CVS用户必须拥有对/cvsap/s
5、rc/master/CVSROOT目录及其中所有文件的读权限。CVS用户必须拥有对/cvsap/src/master/CVSROOT目录下history文件的写权限。CVS用户如果希望对系统中的模块(如,project)代码等资源的修改,必须对该目录有写权限。对于普通的开发用户应该设为:对/cvsap/src/master/CVSROOT目录及其下的所有文件有读权限;对/cvsap/src/master/CVSROOT/history下的文件有写权限;对某个项目(模块)下的文件有读写权限(如,project)。区分管理员和普通用户的权限设定区分管理员和普通用户的权限设定1)添加cvsadmin
6、用户组2)添加cvsuser用户组3)添加CVS管理员帐号到cvsadmin4)添加CVS普通用户到cvsuser5)让cvs管理员拥有对配置目录及其下文件的读写权限,同时给cvs的普通用户对配置目录及其下文件的读权限。rootcvshost/root$chgrp R cvsadmin /cvsap/src/master/CVSROOTrootcvshost/root$chmod R 064 /cvsap/src/master/CVSROOT6)给cvs普通用户对目录/cvsap/src/master/project的读写权限rootcvshost/root$chgrp R cvsuser/c
7、vsap/src/master/projectrootcvshost/root$chmod R 060/cvsap/src/master/projectCVSCVS的口令服的口令服务务器器 CVS口令服务器配置的目的是使cvs用户的远程计算机能访问CVS服务器。其方法分两步:1)以超级用户在hostcvs服务器上的/etc/services的文件中添加一行:cvspserver 2401/tcp。最简单的方法是执行命令:echo cvspserver 2401/tcp /etc/services。注意:端口号2401不要重。这种方式是IBM UNIX系统。2)如果使用的是Redhat6.2及以
8、前的版本或使用inetd超级服务器的UNIX版本,用超级用户在/etc/inetd.conf文件中添加一行,加在末尾:cvspserver stream tcp nowait root/usr/local/bin/cvs cvs cvspserver stream tcp nowait root/usr/local/bin/cvs cvs f f allow allow root=/cvswork pserverroot=/cvswork pserver。如果是Redhat 7.1或其他新版本的Linux,则用超级用户身份打开/etc/xinetd.conf文件,并在文件中添加:service
9、 cvspserverservice cvspserver port =2401 port =2401 socket_type =stream socket_type =stream wait =no wait =no user =root user =root server =/usr/bin/cvs server =/usr/bin/cvs server_args =-f-allow-root=/cvssrc/master pserver server_args =-f-allow-root=/cvssrc/master pserver bind =bind =本机器的本机器的IPIP地址
10、地址 启启动动inetd/xinetdinetd/xinetd超超级级服服务务器器 配置好的口令服务器是包在inetd/xinetd超级服务器内的一个程序。启动的方法为用超级用户登陆,执行命令:roothostcvs/root$unset HOMEroothostcvs/root$unset HOME 用来清除超级用户的$HOME的环境变量,否则执行CVS命令会出错。roothostcvs/root$/etc/rc.d/init.d/inetd restartroothostcvs/root$/etc/rc.d/init.d/inetd restart 也可能是/etc/init.d/inet
11、d restart。或者 roothostcvs/root$/etc/init.d/xinetd restartroothostcvs/root$/etc/init.d/xinetd restart 至此,CVS服务器安装和配置工作完成。如果是如果是HP UNIX HP UNIX 则启动超级口令服务器的方法为:则启动超级口令服务器的方法为:ps ef|grep inetd找出inetd进程的进程号kill HUP 让inetd进程重新读入配置文件使得CVS服务生效测试CVS口令服务器在cvshos服务器上,执行如下命令:rootcvshost/root$telnet localhost 240
12、1客客户户端的安装和配置端的安装和配置 介绍CVSROOT环境变量设置格式:(19页)客户端的Unix/linux的安装和CVS服务器安装过程相同,这里不再赘述。CVS for unix/linux客户端的永久配置方法为:sh/ksh,用编辑器打开$HOME/.bash_profile文件添加:CVSROOT=:pserver:cloud110.60.40.34:/src/masterexport CVSROOT csh,用编辑器打开$HOME/.cshrc文件,在文件的末尾添加:setenv CVSROOT:pserver:public192.168.25.6:/cvssrc/master
13、其中的public为客户端的用户在服务器端的帐户/用户名。CVS for WinCVS的永久配置为:在窗口中选择Admin-Preferences并在General选项卡中输入,如图。关于unix/linux客户端的临时配置:sh/bash:testlinux test$export CVSROOT =:pserver:public192.168.25.6:/cvsap/src/mastercsh:testlinux test$setenv CVSROOT:pserver:public192.168.25.6:/cvsap/src/master 测试远程访问测试远程访问CVS for unix
14、/linux:testlinux test$cvs logincvs password:WinCVS:AdminLogin输入口令即可。在在Visual Studio 中集成中集成CVS(23)1.4 CVS1.4 CVS工作原理及基本命令工作原理及基本命令 仓库的概念已经描述,在CVS库中CVS以一种特殊的文件格式(RCS)来保存这些资源。仓库按照目录和文件结构组织。仓库中每个目录对应一个项目,如:和cvsap/src/master在同一层次的目录除CVSROOT外,其他每个目录都应该是不同的项目。其保存了各个版本的文件,并记录了版本的修改信息。统一文件的不同版本之间具有派生关系,在版本库中
15、只存储不同版本间的改动,从而节约空间。(29页)工作拷贝是指每个开发人员在开发过程中拥有一个独立于其他开发人员的整个软件项目的全部代码的拷贝,在客户端,它和主拷贝(仓库)构成了CVS客户/服务器模式。工作拷贝的每个目录中有一个CVS目录,其下的文件是cvs管理控制文件。(31页)cvs命令的格式:cvs cvs-option command command-option 如:your_client$cvs Q check test可以用命令:cvs-help-commands来查看cvs的命令。在winCVS中在command line setting 菜单中输入命令即可。InitInit命令
16、命令(初始化版本库)初始化版本库)如:cvs d/cvsap/src/master initimportimport命令命令 从客户端登陆服务器。在客户端有目录,如,test,其中有源文件和子目录,将目录test下的内容加入服务器作为一个项目(如,project,test),即一个baseline。命令为:your_client$cd testyour_client$cd test your_client$cvs loginyour_client$cvs login (logging in to your server)(logging in to your server)cvs passwo
17、rd*cvs password*(你的服务器端cvs帐户口令)your_client$cvs import m“initial import”test your_client$cvs import m“initial import”test SSE startSSE start 该命令将当前目录(包含子目录)下的所有内容,都放进CVS系统中,其中,-m 表示在命令中要加注释内容test 为该项目名称SSE 为厂商标识start 为版本标记没有冲突表示创建新的项目仓库成功。在WinCVS中可以在菜单中实现。checkoutcheckout命令命令 checkout命令是将我们选定的CVS服务器上
18、指定仓库中的一个项目代码取到本地的工作目录下。如果要将仓库中的test项目的代码取到本地个人目录下,执行:your_client$cd$HOMEyour_client$cd$HOMEyour_client$cvs checkout testyour_client$cvs checkout test 项目代码会保存在个人目录$HOME/test下供你个人开发或修改。当你打开checkout出的源代码所在的目录,会发现代码中的每个目录(包括每个子目录)中均有名为CVS的子目录。这些目录并不属于代码,它是CVS系统使用的目录,其中保存着CVS管理文件。这是工作拷贝与普通目录文件的不同。这些文件对于C
19、VS很重要。所以不要随便的改变或移动、删除这些CVS目录及其中的文件。解释CVS子目录中的文件(43页)注意:这里的test为用户的目标目录。根据用户client端的配置:CVSROOT:pserver:public192.168.25.6:/cvsap/src/master,命令cvs checkout test 从服务器的库中,即将目录/cvsap/src/master/test下的所以内容包括子目录检出到客户机的$HOME/test目录下,同时生成目录test。当然,也可以检出单个文件。diffdiff命令命令 CVS能将你工作的拷贝中的源代码文件与仓库中的版本进行比较,发现差异。(45
20、页)如:your_client$cvs diff test.cyour_client$cvs diff test.c your_client$cvs diff your_client$cvs diff c test.cc test.c 该命令能看到对照的结果。应该注意的是显示内容中的“+”表示添加行,“!”表示修改,其余的显示内容和UNIX系统中的diff命令显示相仿。your_client$cvs diff your_client$cvs diff r 1.1 r 1.1 r 2.1 test.cr 2.1 test.c 该命令比较库中两个不同版本文件差异。commitcommit命令命令
21、提交操作会改变仓库内容。提交之后,代码成为整个 系统的一个部分了。由于软件的复杂性,需要对提交进行控制。所以在提交时应当遵循一定的流程,进行一定的软件质量保证(SQA)工作,这些工作包括评审(review)、提交报告等。提交源代码的命令为:your_client$cvs commit m“add string variable and your_client$cvs commit m“add string variable and header string.h”test.cheader string.h”test.c注意:如果输出类似以下内容的结果即提交失败,此时应该用update命令更新个
22、人工作目录下的源代码。cvs commit:Up-to-date check failed for test.c cvs commit aborted:correct above errors first!这里的“-m”后面的是CVS注释。CVS强制要求用户在任何一次提交、导入等操作时加入注释。养成注释的习惯非常重要。CVS支持中文注释。如果不在命令行中加入注释,那么CVS将自动启动默认编辑器,请用户输入注释,只有用户保存注释并退出这个编辑器之后,提交才能成功。updateupdate命令命令 该命令既可针对单个文件,也可针对一个目录,或者整个项目。更新单个文件 your_client$cvs
23、 update test.cyour_client$cvs update test.c 执行上述命令后,用户当前工作目录中的文件test.c的内容与仓库中的最新版本完全相同了,因为在你checkout该文件后,在修改该文件的过程中可能他人已经修改并提交了该文件,即你的修改不是基于库中最新版本。所以,你必须先update,再提交该文件才能提交成功。不过可能有冲突要解决,原因是对同一个文件的同一处代码进行了不同的修改。解决冲突的办法就是通过编辑文件,修改发生冲突的部分。对于逻辑问题CVS无法发现,所以版本冲突的处理应该与软件开发中的需要相结合。另外,可以通过more命令看以下合并后的文件,如,mo
24、re test.c。更新整个项目 your_client$cvs update your_client$cvs update 执行上述命令后,用户当前工作拷贝中属于本项目的所有文件与仓库中的最新版本完全相同了。需要注意其警告信息。loglog命令命令 每次提交一个CVS操作时,必须填写日志信息,否则拒绝提交。日志信息可以在命令行中加“-m”参数表示。如果日志过长,可以不用“-m”参数而直接运行,CVS会弹出一个编辑器,让用户在编辑器中输入注释信息。CVS对注释信息没有长度限制。这种日志信息是CVS进行软件变化跟踪的一种机制。每个版本均有日志信息。用户可以查看某个文件的全部历史日志记录,也可以指
25、定查看某个版本或某个日期的日志记录。查看日志信息使用命令:cvs log(53页)。查看文件test.c全部日志,使用命令:your_client$cvs log test.c your_client$cvs log test.c查看test.c文件1.2版本的日志,使用命令:your_client$cvs log your_client$cvs log r1.2 test.c r1.2 test.c 再如:再如:cvs log d“2002-06-012002-07-01;2002-08-012002-cvs log d“2002-06-012002-07-01;2002-08-01 tes
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 配置管理 SCM 相关 概念 36159
限制150内