资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1.1 软件配置管理SCM相关概念,9.1.1 版本管理不同产品的简单介绍,配置管理软件分类:,软件的版本管理(CVS是软件版本管理的工具),构件管理,缺陷和跟踪管理,产品介绍:,1高端产品,如:Rational clearCase,2)中端产品,如:PVCS(pvcs version manager,pvcs tracker)、Perforce,3低端产品,vss,1.2 CVS概述,cvs是什么,cvs是Concurrent Versions System的缩写。是强大而复杂的现代版本控制系统。,cvs的特点,免费:作为开放源代码的世界杰作,CVS是免费的。在中国,北京国联捷讯信息技术 :/)为需要CVS技术支持的公司提供咨询。,跨平台:CVS支持所有的操作系统,而且作为典型的客户/效劳器模式的软件,CVS支持跨平台开发,cvs可以用在AIX、HPUX、Solaris、SUNOS、Linux、Windows,等不同的平台上开发应用,而共用一个CVS效劳器。,强大的分布式开发支持:CVS一直以支持分布式开发作为其根本特征。,支持并行开发:允许多个开发人员对同一个文件进行开发工作,并对多个开发者的工作进行整合。,强大的可塑性:不管是一个源代码组成的工程开发管理,还是代码量超过几百兆的工程,均管理自如。,触发器及定制功能:这种功能帮助开发者将CVS和变动/跟踪系统紧密集成,以形成完整的软件配置管理系统SCM。,1.3 CVS的安装和配置,在unix/linux平台上安装CVS效劳器,安装是超级用户执行的。假设选择一台Linux效劳器,假设主机名为hostcvs。在cvs权威网站g上下载包cvs-1.11.1p1.tar.gz(在linux中可能已经包含后CVS)。运行:,roothostcvs/root$gzip dvf,roothostcvs/root$tar xvf,进入目录cvs-1.11.1p1,运行:,roothostcvs/root$./configure,roothostcvs/root$make,roothostcvs/root$make install,如果未报错误,那么CVS效劳器安装OK了。,whereis cvs,指定CVS仓库,cvs仓库Repository是保存软件资源的设备,可以根据需要选择一目录作为库的位置,如,/cvsap,用超级用户建相应目录。,mkdir/cvssrc,mkdir/cvssrc/master,CVS效劳器的初始化,在确定CVS仓库位置后,就可以初始化CVS效劳器。在初始化的过程中CVS创立其文件系统,并产生原始内容。在目录/cvsap目录下,以超级用户身份在提示符下执行:,roothostcvs/root$,roothostcvs/root$cvs d/cvssrc/master init,其中的目录project为工程源代码的资源目录。执行命令:,roothostcvs/root$ls /cvssrc/master,CVSROOT,roothostcvs/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管理员帐号到cvsadmin,4)添加CVS普通用户到cvsuser,5)让cvs管理员拥有对配置目录及其下文件的读写权限,同时给cvs的普通用户对配置目录及其下文件的读权限。,rootcvshost/root$chgrp R cvsadmin /cvsap/src/master/CVSROOT,rootcvshost/root$chmod R 064 /cvsap/src/master/CVSROOT,6)给cvs普通用户对目录/cvsap/src/master/project的读写权限,rootcvshost/root$chgrp R cvsuser/cvsap/src/master/project,rootcvshost/root$chmod R 060/cvsap/src/master/project,CVS的口令效劳器,CVS口令效劳器配置的目的是使cvs用户的远程计算机能访问CVS效劳器。,其方法分两步:,以超级用户在hostcvs效劳器上的/etc/services的文件中添加一行:cvspserver 2401/tcp。最简单的方法是执行命令:echo cvspserver 2401/tcp /etc/services。注意:端口号2401不要重。这种方式是IBM UNIX系统。,如果使用的是Redhat6.2及以前的版本或使用inetd超级效劳器的UNIX版本,用超级用户在/etc/inetd.conf文件中添加一行,加在末尾:,cvspserver stream tcp nowait root/usr/local/bin/cvs cvs f allow root=/cvswork pserver。,如果是Redhat 7.1或其他新版本的Linux,那么用超级用户身份翻开/etc/xinetd.conf文件,并在文件中添加:,service cvspserver,port =2401,socket_type =stream,wait =no,user =root,server =/usr/bin/cvs,server_args =-f-allow-root=/cvssrc/master pserver,bind =本机器的IP地址,启动inetd/xinetd超级效劳器,配置好的口令效劳器是包在inetd/xinetd超级效劳器内的一个程序。启动的方法为用超级用户登陆,执行命令:,roothostcvs/root$unset HOME,用来去除超级用户的$HOME的环境变量,否那么执行CVS命令会出错。,roothostcvs/root$/etc/rc.d/init.d/inetd restart,也可能是/etc/init.d/inetd restart。或者,roothostcvs/root$/etc/init.d/xinetd restart,至此,CVS效劳器安装和配置工作完成。,如果是HP UNIX 那么启动超级口令效劳器的方法为:,ps ef|grep inetd找出inetd进程的进程号,kill HUP 让inetd进程重新读入配置文件使得CVS效劳生效,测试CVS口令效劳器,在cvshos效劳器上,执行如下命令:,rootcvshost/root$telnet localhost 2401,客户端的安装和配置,介绍CVSROOT环境变量设置格式:,19页,客户端的Unix/linux的安装和CVS效劳器安装过程相同,这里不再赘述。CVS for unix/linux客户端的永久配置方法为:,sh/ksh,用编辑器翻开$HOME/.bash_profile文件添加:,CVSROOT=:pserver:cloud110.60.40.34:/src/master,export CVSROOT,csh,用编辑器翻开$HOME/.cshrc文件,在文件的末尾添加:setenv CVSROOT:pserver:public192.168.25.6:/cvssrc/master,其中的public为客户端的用户在效劳器端的帐户/用户名。,CVS for WinCVS的永久配置为:,在窗口中选择Admin-?Preferences并在General选项卡中输入,如图。,关于unix/linux客户端的临时配置:,sh/bash:,testlinux test$export CVSROOT =:pserver:public192.168.25.6:/cvsap/src/master,csh:,testlinux test$setenv CVSROOT:pserver:public192.168.25.6:/cvsap/src/master,测试远程访问,CVS for unix/linux:,testlinux test$cvs login,cvs password:,WinCVS:,Admin,Login,输入口令即可。,在Visual Studio 中集成CVS(23),1.4 CVS工作原理及根本命令,仓库的概念已经描述,在CVS库中CVS以一种特殊的文件格式RCS来保存这些资源。仓库按照目录和文件结构组织。仓库中每个目录对应一个工程,如:和cvsap/src/master在同一层次的目录除CVSROOT外,其他每个目录都应该是不同的工程。其保存了各个版本的文件,并记录了版本的修改信息。,统一文件的不同版本之间具有派生关系,在版本库中只存储不同版本间的改动,从而节约空间。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 菜单中输入命令即可。,Init命令(初始化版本库,如:cvs d/cvsap/src/master init,import命令,从客户端登陆效劳器。在客户端有目录,如,test,其中有源文件和子目录,将目录test下的内容参加效劳器作为一个工程如,project,test,即一个baseline。命令为:,your_client$cd test,your_client$cvs login(logging in to your server),cvs password*(你的效劳器端cvs帐户口令),your_client$cvs import m“initial import test SSE start,该命令将当前目录包含子目录下的所有内容,都放进CVS系统中,其中,,-m 表示在命令中要加注释内容,test 为该工程名称,SSE 为厂商标识,start 为版本标记,没有冲突表示创立新的工程仓库成功。,在WinCVS中可以在菜单中实现。,checkout命令,checkout命令是将我们选定的CVS效劳器上指定仓库中的一个工程代码取到本地的工作目录下。,如果要将仓库中的test工程的代码取到本地个人目录下,执行:,your_client$cd$HOME,your_client$cvs checkout test,工程代码会保存在个人目录$HOME/test下供你个人开发或修改。当你翻开checkout出的源代码所在的目录,会发现代码中的每个目
展开阅读全文