软件配置管理相关概念



《软件配置管理相关概念》由会员分享,可在线阅读,更多相关《软件配置管理相关概念(48页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,,‹#›,1.1 软件配置管理(SCM)相关概念,9.1.1 版本管理不同产品的简单介绍,配置管理软件分类:,软件的版本管理(CVS是软件版本管理的工具),构件管理,缺陷和跟踪管理,产品介绍:,1)高端产品,如:Rational clearCase,2) 中端产品,如:PVCS (pvcs version manager ,pvcs tracker)、Perforce,,,,3)低,端,端产品,vss,,,,1.2CVS概述,,,,等不同,的,的平台,上,上开发,应,应用,,而,而共用,一,一个CV
2、S服,务,务器。,,强大的,分,分布式,开,开发支,持,持:CVS一,直,直以支,持,持分布,式,式开发,作,作为其,基,基本特,征,征。,,支持并,行,行开发,:,:允许,多,多个开,发,发人员,对,对同一,个,个文件,进,进行开,发,发工作,,,,并对,多,多个开,发,发者的,工,工作进,行,行整合,。,。,,强大的,可,可塑性,:,:不论,是,是一个,源,源代码,组,组成的,项,项目开,发,发管理,,,,还是,代,代码量,超,超过几,百,百兆的,项,项目,,均,均管理,自,自如。,,触发器,及,及定制,功,功能:,这,这种功,能,能帮助,开,开发者,将,将CVS和变,动,动/跟,踪,踪系
3、统,紧,紧密集,成,成,以,形,形成完,整,整的软,件,件配置,管,管理系,统,统(SCM),。,。,,,,1.3CVS的安装,和,和配置,,,,如果未,报,报错误,,,,则CVS服,务,务器安,装,装OK,了,了。,whereis cvs,指定CVS仓,库,库,cvs,仓,仓库(Repository)是,保,保存软,件,件资源,的,的设备,,,,可以,根,根据需,要,要选择,一,一目录,作,作为库,的,的位置,,,,如,,/,/cvsap,,,,用,超,超级用,户,户建相,应,应目录,。,。,mkdir,/,/cvssrc,mkdir,/,/cvssrc/master,CVS,服,服务器,的
4、,的初始,化,化,在确定CVS,仓,仓库位,置,置后,,就,就可以,初,初始化CVS,服,服务器,。,。在初,始,始化的,过,过程中CVS,创,创建其,文,文件系,统,统,并,产,产生原,始,始内容,。,。在目,录,录/cvsap目录,下,下,以,超,超级用,户,户身份,在,在提示,符,符下执,行,行:,,,,[root@hostcvs /root]$,[root@hostcvs /root]$cvs –d /cvssrc,/,/master init,其中的,目,目录project,为,为项目,源,源代码,的,的资源,目,目录。,执,执行命,令,令:,[root@hostcvs /root]
5、$ls,/,/cvssrc,/,/master,CVSROOT,[root@hostcvs /root]$ls,–,–a,/,/cvssrc/master,/,/CVSROOT,该目录,下,下是原,始,始内容,,,,如果,该,该目录,为,为空,,则,则初始,化,化失败,。,。,用户组,和,和用户,帐,帐号的,设,设立,用户组,和,和帐号,的,的设立,原,原则:,进,进行配,置,置管理,的,的用户,和,和进行,开,开发的,用,用户分,别,别设立,不,不同的,用,用户组,,,,如,cvsadmin和cvsuser 两,个,个组,,在,在两个,不,不同组,上,上建立,管,管理用,户,户和开,发,发用
6、户,。,。,CVS,的,的权限,设,设定的,原,原则是,:,:,,,,,,CVS,用,用户必,须,须拥有,对,对/cvsap/src/master,/,/CVSROOT目,录,录及其,中,中所有,文,文件的,读,读权限,。,。,CVS,用,用户必,须,须拥有,对,对/cvsap/src/master,/,/CVSROOT目,录,录下history,文,文件的,写,写权限,。,。,CVS,用,用户如,果,果希望,对,对系统,中,中的模,块,块(如,,,,project),代,代码等,资,资源的,修,修改,,必,必须对,该,该目录,有,有写权,限,限。,对于普,通,通的开,发,发用户,应,应该设,
7、为,为:对,/,/cvsap,/,/src/master/CVSROOT目录,及,及其下,的,的所有,文,文件有,读,读权限,;,;对/cvsap/src,/,/master/CVSROOT,/,/history下,的,的文件,有,有写权,限,限;对,某,某个项,目,目(模,块,块)下,的,的文件,有,有读写,权,权限(,如,如,project,),)。,,,,区分管,理,理员和,普,普通用,户,户的权,限,限设定,1)添,加,加cvsadmin,用,用户组,2)添,加,加cvsuser用,户,户组,3)添,加,加CVS管理,员,员帐号,到,到cvsadmin,4),添,添加CVS普,通,通用
8、户,到,到cvsuser,5),让,让cvs管理,员,员拥有,对,对配置,目,目录及,其,其下文,件,件的读,写,写权限,,,,同时,给,给cvs的普,通,通用户,对,对配置,目,目录及,其,其下文,件,件的读,权,权限。,[root@cvshost /root],$,$ chgrp –R cvsadmin,/,/cvsap/src/master,/,/CVSROOT,[root@cvshost /root],$,$ chmod –R 064,\,\ /cvsap/src,/,/master/CVSROOT,6),给,给cvs普通,用,用户对,目,目录/cvsap/src,/,/master/
9、project,的,的读写,权,权限,[root@cvshost /root],$,$chgrp,–,–Rcvsuser,/,/cvsap,/,/src/master/project,[root@cvshost /root],$,$ chmod –R 060,/,/cvsap,/,/src/master/project,,,,CVS,的,的口令,服,服务器,CVS,口,口令服,务,务器配,置,置的目,的,的是使cvs,用,用户的,远,远程计,算,算机能,访,访问CVS服,务,务器。,其方法,分,分两步,:,:,以超级,用,用户在hostcvs服务,器,器上的,/,/etc/services的文
10、,件,件中添,加,加一行,:,:cvspserver2401/tcp,。,。最简,单,单的方,法,法是执,行,行命令,:,:echocvspserver 2401,/,/tcp >,>,> /etc,/,/services,。,。注意,:,:端口,号,号2401不,要,要重。,这,这种方,式,式是IBMUNIX系统,。,。,如果使,用,用的是Redhat6.2,及,及以前,的,的版本,或,或使用inetd超,级,级服务,器,器的UNIX,版,版本,,用,用超级,用,用户在,/,/etc/inetd.conf,文,文件中,添,添加一,行,行,加,在,在末尾,:,:,,,,cvspserver s
11、treamtcpnowait root,/,/usr/local/bin,/,/cvs cvs–f–allow–root=/cvswork pserver,。,。,如果是Redhat7.1或其,他,他新版,本,本的Linux,则,用,用超级,用,用户身,份,份打开,/,/etc/xinetd.conf文件,,,,并在,文,文件中,添,添加:,service cvspserver,{,port,=,=2401,socket,_,_type,=,=stream,wait,=,=no,user,=,=root,server,=,=,/,/usr/bin/cvs,server,_,_args,=,=,
12、-,-f,-,-–allow-root,=,=/cvssrc/masterpserver,bind,=,=,本,本机器,的,的IP,地,地址,},,,,启动inetd/xinetd超,级,级服务,器,器,配置好,的,的口令,服,服务器,是,是包在inetd/xinetd,超,超级服,务,务器内,的,的一个,程,程序。,启,启动的,方,方法为,用,用超级,用,用户登,陆,陆,执,行,行命令,:,:,[root@hostcvs /root]$unsetHOME,用来清,除,除超级,用,用户的,$,$HOME的,环,环境变,量,量,否,则,则执行CVS,命,命令会,出,出错。,[root@hostc
13、vs /root]$,/,/etc/rc.d/init,.,.d/inetdrestart,也可能,是,是/etc/init.d,/,/inetdrestart。,或,或者,[root@hostcvs /root]$,/,/etc/init.d,/,/xinetd restart,至此,CVS,服,服务器,安,安装和,配,配置工,作,作完成,。,。,,,,,如果是HPUNIX 则,启,启动超,级,级口令,服,服务器,的,的方法,为,为:,ps,–,–ef,|,|grepinetd找出inetd进程的,进,进程号,kill –HUP,<,让inetd进程重,新,新读入,配,配置文,件,件使得CV
14、S服务生,效,效,,测试CVS口,令,令服务,器,器,在cvshos服务,器,器上,,执,执行如,下,下命令,:,:,[root@cvshost /root]$telnet localhost2401,,,,,客户端,的,的安装,和,和配置,介绍CVSROOT,环,环境变,量,量设置,格,格式:,(19,页,页),客户端,的,的Unix/linux的安装和CVS,服,服务器,安,安装过,程,程相同,,,,这里,不,不再赘,述,述。CVSforunix/linux客,户,户端的永久配置方,法,法为:,sh/ksh,,,,用编,辑,辑器打,开,开$HOME,/,/.bash,_,_profile文
15、,件,件添加,:,:,CVSROOT=:pserver:cloud1@10.60.40.34:,/,/src/master,exportCVSROOT,csh,,,,用编,辑,辑器打,开,开$HOME,/,/.cshrc文件,,,,在文,件,件的末,尾,尾添加,:,:setenv CVSROOT,:,:pserver,:,:public@192.168,.,.25,.,.6:,/,/cvssrc/master,其中的public,为,为客户,端,端的用,户,户在服,务,务器端,的,的帐户,/,/用户,名,名。,,,,CVSfor WinCVS的,永,永久配,置,置为:,在窗口,中,中选择Adm
16、in-,-,-》Preferences并在General选项,卡,卡中输,入,入,如,图,图。,关于unix,/,/linux,客,客户端,的,的临时,配,配置:,sh/bash:,[test@linuxtest]$exportCVSROOT,=,=:pserver:public@192,.,.168.25.6,:,:/cvsap/src/master,csh,:,:,[test@linuxtest]$setenvCVSROOT,:,:pserver:public,@,@192.168.25.6:/cvsap/src,/,/master,,,,,,,,,,,测试远,程,程访问,CVSfor u
17、nix,/,/linux,:,:,[test@linuxtest]$cvs login,cvspassword,:,:,WinCVS,:,:,AdminLogin,输入口,令,令即可,。,。,,在Visual Studio,中,中集成CVS,(,(23),,,,,1.4CVS工,作,作原理,及,及基本,命,命令,仓库的,概,概念已,经,经描述,,,,在CVS库,中,中CVS以一,种,种特殊,的,的文件,格,格式(RCS,),)来保,存,存这些,资,资源。,仓,仓库按,照,照目录,和,和文件,结,结构组,织,织。仓,库,库中每,个,个目录,对,对应一,个,个项目,,,,如:和cvsap/src
18、,/,/master在同,一,一层次,的,的目录,除,除CVSROOT外,,,,其他,每,每个目,录,录都应,该,该是不,同,同的项,目,目。其保存,了,了各个,版,版本的,文,文件,,并,并记录,了,了版本,的,的修改,信,信息。,统一文,件,件的不,同,同版本,之,之间具,有,有派生,关,关系,,在,在版本,库,库中只,存,存储不,同,同版本,间,间的改,动,动,从,而,而节约,空,空间。,(,(29,页,页),工作拷,贝,贝是指,每,每个开,发,发人员,在,在开发,过,过程中,拥,拥有一,个,个独立,于,于其他,开,开发人,员,员的整,个,个软件,项,项目的,全,全部代,码,码的拷,贝,
19、贝,在,客,客户端,,,,它和,主,主拷贝,(,(仓库,),)构成,了,了CVS客户,/,/服务,器,器模式,。,。工作拷,贝,贝的每,个,个目录,中,中有一,个,个CVS目录,,,,其下,的,的文件,是,是cvs管理,控,控制文,件,件。(31页,),),,,,cvs命令的,格,格式:,cvs,[,[cvs-option,],] command,[,[command,-,-option],如:your,_,_client$cvs,–,–Qchecktest,可以用,命,命令:cvs,-,--help-commands来查,看,看cvs的命,令,令。,在winCVS中在command line
20、setting,菜,菜单中,输,输入命,令,令即可,。,。,Init命令(,初,初始化,版,版本库,),),如:cvs,–,–d,/,/cvsap,/,/src/masterinit,import,命,命令,从客户,端,端登陆,服,服务器,。,。在客,户,户端有,目,目录,,如,如,test,,,,其中,有,有源文,件,件和子,目,目录,,将,将目录test下的,内,内容加,入,入服务,器,器作为,一,一个项,目,目(如,,,,project,test),,即,即一个baseline。,命,命令为,:,,,,your_client$cdtest,your_client$cvs login(lo
21、ggingintoyour server),cvspassword,*,**,*,***(你的,服,服务器,端,端cvs帐户,口,口令),your_client$cvs import,–,–m,“,“initialimport,”,” testSSEstart,该命令,将,将当前,目,目录(,包,包含子,目,目录),下,下的所,有,有内容,,,,都放,进,进CVS系统,中,中,其,中,中,,-m,表,表示在命令,中,中要加注释内,容,容,test 为,该,该项目,名,名称,SSE,为,为厂,商,商标识,start,为,为版本,标,标记,没有冲,突,突表示,创,创建新,的,的项目,仓,仓库成,功
22、,功。,在WinCVS中可,以,以在菜,单,单中实,现,现。,,,,,checkout命,令,令,checkout命,令,令是将,我,我们选,定,定的CVS服,务,务器上,指,指定仓,库,库中的,一,一个项,目,目代码,取,取到本,地,地的工,作,作目录,下,下。,如果要,将,将仓库,中,中的test,项,项目的,代,代码取,到,到本地,个,个人目,录,录下,,执,执行:,your_client$cd,$,$HOME,your_client$cvs checkout test,项目代,码,码会保,存,存在个,人,人目录,$,$HOME/test下供,你,你个人,开,开发或,修,修改。,当,当你
23、打,开,开checkout,出,出的源,代,代码所,在,在的目,录,录,会,发,发现代,码,码中的,每,每个目,录,录(包,括,括每个,子,子目录,),)中均,有,有名为CVS,的,的子目,录,录。这,些,些目录,并,并不属,于,于代码,,,,它是CVS,系,系统使,用,用的目,录,录,其,中,中保存,着,着CVS管理,文,文件。,这,这是工,作,作拷贝,与,与普通,目,目录文,件,件的不,同,同。这,些,些文件,对,对于CVS很,重,重要。,所,所以不,要,要随便,的,的改变,或,或移动,、,、删除,这,这些CVS目,录,录及其,中,中的文,件,件。解释CVS子,目,目录中,的,的文件,(,
24、(43,页,页),,,,注意:,这,这里的test为用,户,户的目,标,标目录,。,。根据,用,用户client端,的,的配置,:,:CVSROOT,:,:pserver:public,@,@192.168.25.6:/cvsap/src,/,/master,命,令,令cvs checkout test,从,从服,务,务器的,库,库中,,即,即将目,录,录/cvsap/src/master,/,/test下,的,的所以,内,内容包,括,括子目,录,录检出,到,到客户,机,机的$HOME/test,目,目录下,同时,生,生成目,录,录test。当然,,也,也可以,检,检出单,个,个文件,。,。,
25、diff命令,CVS,能,能将你,工,工作的,拷,拷贝中,的,的源代,码,码文件,与,与仓库,中,中的版,本,本进行,比,比较,,发,发现差,异,异。(45,页,页)如:,your_client$cvs difftest.c,your_client$cvs diff–c test,.,.c,该命令,能,能看到,对,对照的,结,结果。,应,应该注,意,意的是,显,显示内,容,容中的,“,“+”,表,表示添,加,加行,,“,“!”,表,表示修,改,改,其,余,余的显,示,示内容,和,和UNIX系,统,统中的diff命令,显,显示相,仿,仿。,,,,your_client$cvs diff–r 1,
26、.,.1–r 2,.,.1test.c,该命令,比,比较库,中,中两个,不,不同版,本,本文件,差,差异。,commit,命,命令,提交操,作,作会改,变,变仓库,内,内容。,提,提交之,后,后,代,码,码成为,整,整个,系,系统,的,的一个,部,部分了,。,。由于,软,软件的,复,复杂性,,,,需要,对,对提交,进,进行控,制,制。所,以,以在提,交,交时应,当,当遵循,一,一定的,流,流程,,进,进行一,定,定的软,件,件质量,保,保证(SQA,),)工作,,,,这些,工,工作包,括,括评审,(,(review)、,提,提交报,告,告等。,提交源,代,代码的,命,命令为,:,:,your_
27、client$cvs commit,–,–m,“,“add stringvariableandheaderstring,.,.h”test.c,注意:,如,如果输,出,出类似,以,以下内,容,容的结,果,果即提,交,交失败,,,,此时,应,应该用update命令更新个人工,作,作目录,下,下的源,代,代码。,,,,,cvscommit:Up-to-datecheckfailed for,‘,‘test.c’,cvs,[,[commitaborted]:correct above errorsfirst!,这里的,“,“-m”后面的,是,是CVS注释,。,。CVS强制,要,要求用,户,户在任,何
28、,何一次,提,提交、,导,导入等,操,操作时,加,加入注,释,释。养,成,成注释,的,的习惯,非,非常重,要,要。,CVS,支,支持中,文,文注释,。,。如果,不,不在命,令,令行中,加,加入注,释,释,那,么,么CVS将自,动,动启动,默,默认编,辑,辑器,,请,请用户,输,输入注,释,释,只,有,有用户,保,保存注,释,释并退,出,出这个,编,编辑器,之,之后,,提,提交才,能,能成功,。,。,update,命,命令,该命令,既,既可针,对,对单个,文,文件,,也,也可针,对,对一个,目,目录,,或,或者整,个,个项目,。,。,,,,更新单,个,个文件,your_client$cvs up
29、datetest.c,执行上,述,述命令,后,后,用,户,户当前,工,工作目,录,录中的,文,文件test,.,.c的,内,内容与,仓,仓库中,的,的最新,版,版本完,全,全相同,了,了,因,为,为在你checkout该,文,文件后,,,,在修,改,改该文,件,件的过,程,程中可,能,能他人,已,已经修,改,改并提,交,交了该,文,文件,,即,即你的,修,修改不,是,是基于,库,库中最,新,新版本,。,。所以,,,,你必,须,须先update,,再,再提交,该,该文件,才,才能提,交,交成功,。,。不过,可,可能有,冲,冲突要,解,解决,,原,原因是,对,对同一,个,个文件,的,的同一,处,处
30、代码,进,进行了,不,不同的,修,修改。,解,解决冲,突,突的办,法,法就是,通,通过编,辑,辑文件,,,,修改,发,发生冲,突,突的部,分,分。对,于,于逻辑,问,问题CVS无,法,法发现,,,,所以,版,版本冲,突,突的处,理,理应该,与,与软件,开,开发中,的,的需要,相,相结合,。,。另外,,,,可以,通,通过more,命,命令看,以,以下合,并,并后的,文,文件,,如,如,moretest.c。,,,,更新整,个,个项目,your_client$cvs update,执行上,述,述命令,后,后,用,户,户当前,工,工作拷,贝,贝中属,于,于本项,目,目的所,有,有文件,与,与仓库,中
31、,中的最,新,新版本,完,完全相,同,同了。,需,需要注,意,意其警,告,告信息,。,。,,log,命,命令,每次提,交,交一个CVS,操,操作时,,,,必须,填,填写日,志,志信息,,,,否则,拒,拒绝提,交,交。日,志,志信息,可,可以在,命,命令行,中,中加“,-,-m”,参,参数表,示,示。如,果,果日志,过,过长,,可,可以不,用,用“-m”参,数,数而直,接,接运行,,,,CVS会弹,出,出一个,编,编辑器,,,,让用,户,户在编,辑,辑器中,输,输入注,释,释信息,。,。CVS对注,释,释信息,没,没有长,度,度限制,。,。这种,日,日志信,息,息是CVS进,行,行软件,变,变化
32、跟,踪,踪的一,种,种机制,。,。,,,,每个版,本,本均有,日,日志信,息,息。用,户,户可以,查,查看某,个,个文件,的,的全部,历,历史日,志,志记录,,,,也可,以,以指定,查,查看某,个,个版本,或,或某个,日,日期的,日,日志记,录,录。查,看,看日志,信,信息使,用,用命令,:,:cvs log(53,页,页)。,查看文,件,件test.c全部,日,日志,,使,使用命,令,令:,your_client$cvs logtest.c,查看test,.,.c文,件,件1.2版本,的,的日志,,,,使用,命,命令:,your_client$cvs log–r1.2 test,.,.c,再
33、如:cvslog –d“2002,-,-06,-,-01,<,<2002-07-01;2002-08-01<2002,-,-09,-,-01,”,”,,共享日,志,志在有,时,时很有,用,用,如,果,果一个,提,提交命,令,令一次,提,提交多,个,个文件,时,时,这,些,些文件,共,共享一,个,个日志,信,信息。,如,如果你,希,希望将,几,几个文,件,件一起,提,提交,,并,并且在,之,之后能,发,发现这,些,些文件,是,是同时,提,提交的,,,,则只,有,有相同,的,的日志,信,信息能,帮,帮助你,实,实现这,一,一点。,如,如:,没空格,,,,your_client$cvs commit
34、,–,–m,“,“fixedbug no .8888”test.cMakefile,your_client$cvs logtest.cMakefile,,status,命,命令,该命令是,查,查看已,经,经checkout,出,出来的,文,文件信,息,息,如:,your_client$cvs statustest.c,your_client$cvs status,–,–vtest.c,(,(同时,能,能查看tag,和,和branch),,版本回,退,退(55,页,页),如果用,户,户提交,了,了一个,错,错误的,版,版本,,而,而不希,望,望错误,的,的版本,是,是当前,最,最新版,本,本,一
35、,个,个简单,的,的方法,就,就是回,退,退。,方法之,一,一,首,先,先更新,到,到最新,版,版本,,再,再取出,旧,旧版本,重,重新提,交,交。按,下,下列秩,序,序执行,命,命令:,,,,your_client$cvs update,your_client$cvs -Q update–p–r 1,.,.2test.c,>,>test.c(该命,令,令不能,在,在windows上,执,执行),上面命,令,令假设,现,错,错误版,本,本号为1.3,,,,正确,版,版本号,为,为1.2。该,命,命令中,“,“-Q,”,”是不,输,输出无,关,关的信,息,息。注,意,意不要,执,执行命,令,令c
36、vs update,–,–r1.2test.c 这,样,样会出,现,现问题。,your_client$cvs commit,–,–m,“,“revertedtorevision1.2”test.c,cvsdiff–r 1,.,.2–r 1,.,.4test.c,结果可,以,以看出,两,两个版,本,本是否,相,相同,方法之,二,二,用,命,命令:,your_client$cvs update,–,–j1.3,–,–j1.2 test,.,.c,将1.3版本,与,与1.2版本,之,之间的,差,差异补,到,到1.3版本,上,上去。,,,,your_client$cvs statustest.c,查看
37、checkout出的1.3,版,版本的,状,状态(已经,在,在本地,修,修改),your_client$cvs commit,–,–m,“,“revertedtorevision1.2”test.c,your_client$cvs diff–r 1,.,.2test.c,,在项目,中,中添加,新,新的目,录,录和文,件,件命令,:,:add,将工作,目,目录中,新,新加的,目,目录和,文,文件添,加,加到cvs库,中,中的方,法,法:,在工作,目,目录中,创,创建目,录,录和文,件,件后才,能,能进行,。,。,加文件,的,的第一,步,步:,your_client$cvs addnewfile,
38、执行第,二,二步:,your_client$cvs commit,–,–m,“,“added,”,”newfile,,,,,加目录,(,(不管,目,目录是,否,否为空,目,目录),只,只需一,步,步:,your_client$cvs addnewder,注意:,目,目录中,的,的文件,需,需要分,别,别加入,。,。,删除文,件,件命令,:,:remove,必须先,删,删除工,作,作目录,中,中的该,文,文件,,删,删除前,应,应该将,修,修改过,的,的本文,件,件提交,保,保存,,作,作为仓,库,库中的,新,新版本,。,。命令,如,如下:,第一步,:,:,your_client$rmoldfi
39、le,(,(该命,令,令不能,在,在windows上,执,执行),your_client$cvs removeoldfile,上两步,可,可以合,并,并:,your_client$cvs remove,–,–foldfile,第二步,:,:your_client,$,$ cvscommit,–,–m,“,“removed,”,” oldfile,大家可,以,以按步,骤,骤看一,下,下工作,目,目录cvs目,录,录下的Entries文件,有,有什么,变,变化。,,,,对删除,的,的目录,因为cvs不,对,对目录,进,进行版,本,本控制,,,,所以,和,和删除,文,文件不,同,同,没,有,有一个,
40、专,专门的,命,命令。,例,例如(,要,要删除,目,目录olddir),:,:,your_client$ls,-,-a,olddirtest,.,.ctest1.c test,.,.pc,your_client$cdolddir,your_client$ls,–,–a,tmp,.,.ctmp1.c,以下是,删,删除目,录,录olddir的命,令,令:,your_client$cvs remove,–,–ftmp.ctmp1.c,Your_client$cvscommit –m “removed”tmp.ctmp1.c,your_client$cd,.,..,your_client$cvs up
41、date,–,–P,your_client$cvsupdate,(所有,空,空目录,均,均从工,作,作目录,中,中删除,),),这时目,录,录olddir从工,作,作目录,中,中消失,注意:,此,此命令,不,不会将,库,库中新,添,添加的,目,目录取,到,到工作,目,目录中,,,,可执,行,行命令,:,:your_client,$,$ cvsupdate,-,-d,,,清除、,删,删除,,,,文件和,目,目录名,的,的更改,因为cvs对,文,文件和,目,目录的,更,更名缺,乏,乏支持,,,,所以,必,必须中,其,其他方,法,法处理,,,,该文,件,件makefile,名,名的方,法,法一为,:
42、,:,your_client$mvmakefile makefile.mk,your_client$cvs remove,–,–fmakefile,your_client$cvs commit,–,–m,“,“removedforrenaming,”,” makefile,your_client$cvs addmakefile.mk,your_client$cvs commit,–,–m,“,“addedasarenamed versionofmakefile,”,”makefile.mk,方法二,(,(在服,务,务器上,直,直接操,作,作):,[root@cvshost /root]$cd,
43、/,/cvsap,/,/src/master/test,[root@cvshost /root]$mvmakefile,,,,vmakefile.mk,v,这种改,法,法的危,险,险:确,保,保没人,访,访问该,文,文件;,不,不知道,什,什么时,候,候执行,的,的修改,;,;无法,获,获得文,件,件在改,名,名前的,旧,旧版本,。,。,,,,改目录,名,名的方,法,法也有,两,两种:,方法一,:,:在工,作,作目录,中,中创建,新,新目录,,,,将旧,目,目录下,除,除cvs目录,外,外的所,有,有文件,和,和子目,录,录移到,新,新目录,下,下。然,后,后删除,旧,旧文件,,,,在添,加,
44、加新目,录,录,并,添,添加文,件,件。,your_client$mkdirnewdir,your_client$mvoldnew/*newdir,your_client$cdolddir,your_client$cvsremove,–,–f,*,*,your_client$cvsupdate,–,–P,your_client$cvsupdate,your_client$cd,.,..,your_client$cvsaddnewdir,,,,方法二,:,:[root@cvshost /root]$cd,/,/cvsap,/,/src/master/test,[root@cvshost /roo
45、t]$mvolddir newdir,这种方,法,法是禁,止,止任何,人,人访问,数,数据库,,,,且方,法,法危险,,,,步主,张,张使用,。,。,,,,1.5,测,测,试,试环境,进入测,试,试环境,步,步骤:,在个人,的,的pc,机,机上启,动,动linux,或,或windows操,作,作系统,,,,配置,好,好客户,端,端。在linux系,统,统中也,可,可以用startx,进,进入画,面,面操作,系,系统,,而,而后用,自,自带的,终,终端操,作,作命令,。,。在windows,系,系统中,直,直接启,动,动WinCVS即可,。,。,服务器,的,的IP,地,地址:10.40.52.6
46、4。,服,服务器,中,中cvs用户,为,为du,_,_cloud,/,/du,_,_cloud,(,(管理,用,用户),,,,usera,[,[b],[,[c],/,/usera,[,[b],[,[c],为,为开发,用,用户。,可以按,照,照前面,讲,讲的命,令,令去进,行,行练习,。,。,,,,1.6CVS,的,的高级,主,主题版,本,本标签,和,和版本,分,分支,1.6,.,.1版,本,本,在配置,管,管理的,语,语境里,,,,版本,的,的概念,应,应该是revision,,而,而不是version。,版本的,编,编号可,以,以系统,自,自己编,,,,也可,以,以用户,自,自定义,版,版本
47、号,。,。在系,统,统自己,编,编号时,,,,如果,项,项目中,添,添加新,文,文件,,该,该文件,不,不版本,号,号码的,第,第一位,与,与本目,录,录下版,本,本号码,最,最高的,文,文件第,一,一位相,同,同,第,二,二位是1。如,,,,一个,目,目录下,有,有三个,文,文件其,版,版本号,为,为1.5、2,.,.8、5.14,那,么,么新添,加,加的文,件,件版本,号,号应该,是,是5.1。如,果,果用户,自,自己给,某,某个版,本,本编号,,,,则这,个,个版本,编,编号必,须,须大于,项,项目中,的,的所有,文,文件的,版,版本号,。,。,1.6,.,.2,版,版本标,签,签(ta
48、g),版本标,签,签是符,号,号化的,版,版本号,码,码,具,有,有直观,、,、易于,记,记忆和,管,管理的,优,优点。,用,用于阶,段,段式(,里,里程碑,),)的版,本,本标记,。,。是连,接,接项目,中,中不同,文,文件不,同,同版本,的,的手段,。,。,例子:,通,通过WinCVS展,示,示版本,标,标签,标签的,设,设定,[Du,_,_cloud,@,@linuxtest],$,$ cvstagrel_1,_,_0_1 test,.,.c,,,,,注意:,很,很少给,单,单个文,件,件设标,签,签。,给目录,下,下所有,文,文件贴,标,标签:,[Du,_,_cloud,@,@linu
49、xtest],$,$ cvstagbaseline,_,_1,标签的,删,删除、,重,重命名,和,和移动,删除:,[Du,_,_cloud,@,@linuxtest],$,$ cvstag,–,–dbaseline,_,_1,重命名,:,:,[Du,_,_cloud,@,@linuxtest],$,$ cvstag,–,–rbaseline,_,_1baseline_2,[Du,_,_cloud,@,@linuxtest],$,$ cvstag,–,–dbaseline,_,_1,移动:,[Du,_,_cloud,@,@linuxtest],$,$ cvstag,–,–r1.6 –F base
50、line_1test.c,我们将test.c,的,的标签,从,从旧版,本,本1.5移到,新,新版本1.6,上,上。,,标签的,命,命名,baseline_1-20030623,Release-20030522,Nightly-20030321,等。,,,,标签的,查,查看,[Du,_,_cloud,@,@linuxtest],$,$ cvsstatus,–,–vtest.c,[Du,_,_cloud,@,@linuxtest],$,$ cvsstatus,–,–v,确定标,签,签要贴,的,的位置,[Du,_,_cloud,@,@linuxtest],$,$ cvstag,–,–cbaselin
51、e,_,_1,贴标签,时,时注意,不,不要遗,忘,忘已经,修,修改但,没,没有提,交,交的文,件,件。,按约定,贴,贴标签,(,(仓库,中,中直接,给,给模块,加,加标签,),),按日期,贴,贴标签,(,(下例,是,是将模,块,块test的,所,所有文,件,件在20030624号0,时,时0分,前,前提交,的,的最后,一,一个版,本,本贴上,标,标签:,[Du,_,_cloud,@,@linuxtest],$,$ cvsrtag –D 20030624nightly_20030624 test,按版本,号,号、已,经,经有的,标,标签贴,新,新标签,[Du,_,_cloud,@,@linuxt
52、est],$,$ cvsrtag –r nightly,_,_20030624,(,(老tag)rel_2,_,_1test(贴,新,新标签,但,但test下,新,新加程,序,序不挂,到,到标签,上,上),[Du,_,_cloud,@,@linuxtest],$,$ cvsrtag –f nightly,_,_20030624test(,将,将test下,新,新加的,程,程序的,最,最新版,本,本强制,的,的挂到nightly_20030624上),[Du,_,_cloud,@,@linuxtest],$,$ cvsrtag –r 1,.,.5rel,_,_2_1 test,[Du,_,_cl
53、oud,@,@linuxtest],$,$ cvsrtag –f 1,.,.5rel,_,_2_1 test,附着性,标,标签,1)引,起,起附着,性,性标签,的,的命令,有,有:,,,,cvsupdate –r tag(,标,标签号,),),cvsupdate –D date,(,(更新,到,到不晚,于,于date的,最,最新版,本,本),cvsupdate –r x,.,.y(,版,版本号,),) test,.,.c,cvscheckout,–,–rtag(标,签,签号),cvscheckout,–,–Ddate,(,(date之,前,前最近,的,的版本,),),cvscheckout,–
54、,–rx.y test,.,.c,2)附,着,着性标,签,签在版,本,本分支,中,中的使,用,用:保,持,持版本,分,分支号,与,与标签,有,有直接,的,的关系,,,,也就,是,是标签,附,附着在,分,分支号,上,上。,3)保,持,持某些,文,文件的,不,不改动,:,:,只要对,几,几个文,件,件执行,了,了cvs update,–,–r,命,命令,,如,如:cvsupdate,–,–r1.28ax.c则版,本,本1.28就,会,会成为,附,附着性,标,标签,,以,以后执,行,行cvs update,命,命令时,这,这个文,件,件不会,更,更新,,直,直到解,除,除附着,性,性为止,。,。,另
55、外,,还,还有1,),)中的,命,命令情,况,况相同,。,。,4)解,除,除附着,性,性标签,:,:,[Du,_,_cloud,@,@linuxtest],$,$ cvsupdate,–,–Atest.c,该命令,解,解除附,着,着性标,签,签,将checkout主,干,干的最,新,新版本,并,并放本,地,地。,,,,,1.6,.,.3,如,如何获,得,得某个,特,特定的,版,版本,根据版,本,本号码,或,或版本,标,标签获,得,得,[Du,_,_cloud,@,@linuxtest],$,$ cvsupdate,–,–r1.1 test,.,.c,获得某,一,一版本,标,标签的,整,整个软,
56、件,件的源,代,代码:,[Du,_,_cloud,@,@linuxtest],$,$ cvscheckout,–,–rbaseline_1 test,或者跳,转,转到某,个,个版本,标,标签的,版,版本(,已,已经有,工,工作拷,贝,贝的情,况,况下),[Du,_,_cloud,@,@linuxtest],$,$ cvsupdate,–,–rbaseline,_,_1,根据时,间,间获得,特,特定版,本,本(更,新,新到不,晚,晚于date,的,的最新,版,版本),[Du,_,_cloud,@,@linuxtest],$,$ cvsupdate,–,–D,“,“2002,-,-05,-,-08
57、,”,”,[Du,_,_cloud,@,@linuxtest],$,$ cvsupdate,–,–D,“,“2002,-,-05,-,-0823,:,:59,:,:59,”,”,[Du,_,_cloud,@,@linuxtest],$,$ cvsupdate,–,–D,“,“2002,-,-05,-,-09,”,”,[Du,_,_cloud,@,@linuxtest],$,$ cvsupdate,–,–D,“,“2002,-,-05,-,-0823,:,:59,:,:59GMT”(,让,让用户,使,使用GMT时,间,间),如果要,取,取回旧,版,版本修,改,改,而,不,不是基,于,于最新,版,
58、版本,,修,修改后,提,提交形,成,成最新,版,版本,,方,方法有,三,三:,1)逐,个,个文件,处,处理:,[Du,_,_cloud,@,@linuxtest],$,$ cvsupdate,–,–p,–,–D,“,“2003,-,-05,-,-18,’,’ test,.,.c,>,>test.c,,,,,方法二,:,:一次,性,性处理,所,所有文,件,件,[Du,_,_cloud,@,@linuxtest],$,$ cvsupdate,–,–A,[Du,_,_cloud,@,@linuxtest],$,$ cvsexport,–,–D,“,“2003,-,-05,-,-18,”,” test
59、,[Du,_,_cloud,@,@linuxtest],$,$ cp –r test,/,/home,/,/du,_,_cloud,*将test,.,.c的baseline_1标签,移,移动从,旧,旧版本1.5,到,到新版,本,本1.6上:,cvstag –r 1,.,.6,–,–Fbaseline_1 test,.,.c,1.6,.,.4,版,版本分,支,支,[Du,_,_cloud,@,@linuxtest],$,$ cvsco,–,–dtest_brh,–,–rbase_1test,[Du,_,_cloud,@,@linuxtest_brh,],]$cvstag –b base,_,_1
60、_brh,[Du,_,_cloud,@,@linuxtest_brh,],]$cvsup,–,–rbase_1_brh(,可,可以在,分,分支中,修,修改程,序,序如:test.c,),),[Du,_,_cloud,@,@linuxtest_brh,],]$cvsci,–,–m,“,“fixed bugno111,”,” test,.,.c(,提,提交到,分,分支上,),),[Du,_,_cloud,@,@linuxtest],$,$ cvsup,–,–jbase_1,_,_brh(分,支,支版本,合,合并到,主,主干版,本,本中),[Du,_,_cloud,@,@linuxtest],$,$
61、 cvsci,–,–m,“,“merged frombranch:base,_,_1_brh,”,”,,,,,Cvs,输,输出(export,),)--,-,-发布,代,代码(,去,去出没,有,有CVS痕迹,的,的代码,),),cvsexport –r rel_1(主,干,干上tag号,),) –d test,_,_release1test,cvsexport –r brh_tag,_,_brh(分,支,支名称,),) –d shanghai_releasetest,[Du,_,_cloud,@,@linuxtest],$,$ tar,–,–cvf test,_,_release1,.,.ta
62、r test,_,_release1,[Du,_,_cloud,@,@linuxtest],$,$ gziptest_release1.tar,,,1.6,.,.5cvs与二,进,进制文,件,件,重要的,二,二进制,文,文件也,需,需要进,行,行版本,管,管理。,如,如:web应,用,用的大,量,量图片,、,、控件,、,、动态,连,连接库,、,、unix不,同,同操作,系,系统下,的,的编译,器,器、函,数,数库等,等,等。,CVS,在,在处理,文,文本类,型,型的文,件,件,包,括,括各种,源,源代码,文,文件、HTML、XML文,件,件等。CVS,对,对文本,类,类型的,文,文件进,行,行
63、版本,管,管理时,,,,会对,文,文件做,一,一些秘,密,密的处,理,理,在,客,客户端,和,和UNIX仓,库,库之间,,,,CVS会自,动,动进行,回,回车、,换,换行替,换,换和关,键,键字扩,展,展处理,。,。,,,,,,CVS,对,对二进,制,制文件,管,管理的,不,不好,,和,和ClearCase相比,,,,ClearCase具有,文,文件类,型,型,可,以,以进行,二,二进制,文,文件的,比,比较,,但,但是ClearCase也,要,要尽量,避,避免二,进,进制文,件,件的分,支,支和合,并,并。CVS无,法,法进行,二,二进制,文,文件的,合,合并和,分,分支,,不,不过在,实,
64、实际应,用,用中二,进,进制文,件,件的合,并,并和分,支,支是没,意,意义的,。,。,CVS,对,对二进,制,制文件,的,的管理,和,和保存,:,:,1)在CVS,系,系统中,保,保存二,进,进制文,件,件,应,该,该使用,“,“-kb”选,项,项来禁,止,止CVS对文,件,件进行,回,回车、,换,换行替,换,换和关,键,键字扩,展,展的加,工,工。这,个,个选项,只,只需要,在,在cvs add,命,命令中,使,使用,,本,本选项,是,是一个,附,附着性,选,选项(,如,如果没,有,有附着,性,性每次,执,执行cvs命,令,令时都,需,需要这,个,个选项,),)。,如:cvsadd,–,–
65、kb binfile,cvscommit –m “addedbinfile”binfile,注意:,二,二进制,文,文件是,原,原封不,动,动的保,存,存在仓,库,库中,,不,不能按,照,照增量,方,方式保,存,存两个,版,版本的,差,差异,,而,而是累,加,加。,2)恢,复,复二进,制,制版本,,,,如果,忘,忘记使,用,用“-kb”,选,选项,,添,添加了,二,二进制,文,文件并,提,提交了,仓,仓库,,库,库在UNIX,/,/Linux,平,平台上,可,可以通,过,过以下,命,命令恢,复,复:,cvsadmin,–,–kb binfile,(,(反扩,展,展),cvsupdate –A
66、binfile,(,(工作,拷,拷贝中,的,的文件,恢,恢复二,进,进制),如果库,在,在windows平,台,台上只,能,能手工,处,处理。,CVS,识,识别二,进,进制文,件,件:cvs中,使,使用一,种,种简单,的,的技术,来,来辨别,二,二进制,文,文件—,根,根据扩,展,展名。,但,但需要,进,进行配,置,置,配,置,置文件,在,在服务,器,器的/cvsap/src,/,/master/CVSROOT,,,,目录下,的,的文件cvswrappers。,首,首先执,行,行:,cvsco,/,/cvsap/src/master,/,/CVSROOT/cvswrappers,打开该,文,文件,,如,如在该,文,文件的,末,末尾加,:,:,*.gif,–,–k,‘,‘-b,’,’,*.jpg,–,–k,‘,‘-b,’,’,*.bmp,–,–k,‘,‘-b,’,’,*.mpp,–,–k,‘,‘-b,’,’,*.xls,–,–k,‘,‘-b,’,’,*.ppt,–,–k,‘,‘-b,’,’,再执行,:,:,cvsci,–,–m,“,“add7 binaryfile types”,/,/c
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 36个关键词详解2025政府工作报告
- 学习2025年政府工作报告中的八大科技关键词
- 2025年政府工作报告要点速览接续奋斗共谱新篇
- 学习2025政府工作报告里的加减乘除
- 深化农村改革党课ppt课件(20250305)
- 弘扬雷锋精神凝聚奋进力量学习雷锋精神的丰富内涵和时代价值
- 深化农村改革推进乡村全面振兴心得体会范文(三篇)
- 2025年民营企业座谈会深度解读PPT课件
- 领导干部2024年述职述廉述责述学述法个人报告范文(四篇)
- 读懂2025中央一号党课ppt课件
- 2025年道路运输企业主要负责人安全考试练习题[含答案]
- 2024四川省雅安市中考英语真题[含答案]
- 2024湖南省中考英语真题[含答案]
- 2024宁夏中考英语真题[含答案]
- 2024四川省内江市中考英语真题[含答案]