软件配置管理(SCM)相关概念_第1页
软件配置管理(SCM)相关概念_第2页
软件配置管理(SCM)相关概念_第3页
软件配置管理(SCM)相关概念_第4页
软件配置管理(SCM)相关概念_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1.1软件配置管理〔SCM〕相关概念9.1.1版本管理不同产品的简单引见配置管理软件分类:软件的版本管理(CVS是软件版本管理的工具)构件管理缺陷和跟踪管理产品引见:1〕高端产品如:RationalclearCase2)中端产品如:PVCS(pvcsversionmanager,pvcstracker)、Perforce3〕低端产品vss1.2CVS概述cvs是什么cvs是ConcurrentVersionsSystem的缩写。是强大而复杂的现代版本控制系统。cvs的特点免费:作为开放源代码的世界杰作,CVS是免费的。在中国,北京国联捷讯信息技术〔unitedinfo)为需求CVS技术支持的公司提供咨询。跨平台:CVS支持一切的操作系统,而且作为典型的客户/效力器方式的软件,CVS支持跨平台开发,cvs可以用在AIX、HPUX、Solaris、SUNOS、Linux、Windows 等不同的平台上开发运用,而共用一个CVS效力器。强大的分布式开发支持:CVS不断以支持分布式开发作为其根本特征。支持并行开发:允许多个开发人员对同一个文件进展开发任务,并对多个开发者的任务进展整合。强大的可塑性:不论是一个源代码组成的工程开发管理,还是代码量超越几百兆的工程,均管理自若。触发器及定制功能:这种功能协助开发者将CVS和变动/跟踪系统严密集成,以构成完好的软件配置管理系统〔SCM〕。1.3CVS的安装和配置在unix/linux平台上安装CVS效力器安装是超级用户执行的。假设选择一台Linux效力器,假设主机名为hostcvs。在cvs权威网站上下载包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/masterCVS效力器的初始化在确定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/projectCVS的口令效力器CVS口令效力器配置的目的是使cvs用户的远程计算机能访问CVS效力器。其方法分两步:以超级用户在hostcvs效力器上的/etc/services的文件中添加一行:cvspserver2401/tcp。最简单的方法是执行命令:echocvspserver2401/tcp>>/etc/services。留意:端口号2401不要重。这种方式是IBMUNIX系统。假设运用的是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–HUP<pid> 让inetd进程重新读入配置文件使得CVS效力生效测试CVS口令效力器在cvshos效力器上,执行如下命令:[root@cvshost/root]$telnetlocalhost2401客户端的安装和配置引见CVSROOT环境变量设置格式:〔19页〕客户端的Unix/linux的安装和CVS效力器安装过程一样,这里不再赘述。CVSforunix/linux客户端的永久配置方法为:sh/ksh,用编辑器翻开$HOME/.bash_profile文件添加:CVSROOT=:pserver:cloud1@4:/src/masterexportCVSROOTcsh,用编辑器翻开$HOME/.cshrc文件,在文件的末尾添加:setenvCVSROOT:pserver:public@:/cvssrc/master其中的public为客户端的用户在效力器端的帐户/用户名。CVSforWinCVS的永久配置为:在窗口中选择Admin-->Preferences并在General选项卡中输入,如图。关于unix/linux客户端的暂时配置:sh/bash:[test@linuxtest]$exportCVSROOT=:pserver:public@:/cvsap/src/mastercsh:[test@linuxtest]$setenvCVSROOT:pserver:public@:/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/masterinitimport命令从客户端登陆效力器。在客户端有目录,如,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管理文件。这是任务拷贝与普通目录文件的不同。这些文件对于CVS很重要。所以不要随意的改动或挪动、删除这些CVS目录及其中的文件。解释CVS子目录中的文件〔43页〕留意:这里的test为用户的目的目录。根据用户client端的配置:CVSROOT:pserver:public@:/cvsap/src/master,命令cvscheckouttest从效力器的库中,即将目录/cvsap/src/master/test下的所以内容包括子目录检出到客户机的$HOME/test目录下,同时生成目录test。当然,也可以检出单个文件。diff命令CVS能将他任务的拷贝中的源代码文件与仓库中的版本进展比较,发现差别。〔45页〕如:your_client$cvsdifftest.cyour_client$cvsdiff–ctest.c该命令能看到对照的结果。应该留意的是显示内容中的“+〞表示添加行,“!〞表示修正,其他的显示内容和UNIX系统中的diff命令显示相仿。your_client$cvsdiff–r1.1–r2.1test.c该命令比较库中两个不同版本文件差别。commit命令提交操作会改动仓库内容。提交之后,代码成为整个系统的一个部分了。由于软件的复杂性,需求对提交进展控制。所以在提交时该当遵照一定的流程,进展一定的软件质量保证〔SQA〕任务,这些任务包括评审〔review〕、提交报告等。提交源代码的命令为:your_client$cvscommit–m“addstringvariableandheaderstring.h〞test.c留意:假设输出类似以下内容的结果即提交失败,此时应该用update命令更新个人任务目录下的源代码。cvscommit:Up-to-datecheckfailedfor‘test.c’cvs[commitaborted]:correctaboveerrorsfirst!这里的“-m〞后面的是CVS注释。CVS强迫要求用户在任何一次提交、导入等操作时参与注释。养成注释的习惯非常重要。CVS支持中文注释。假设不在命令行中参与注释,那么CVS将自动启动默许编辑器,请用户输入注释,只需用户保管注释并退出这个编辑器之后,提交才干胜利。update命令该命令既可针对单个文件,也可针对一个目录,或者整个工程。更新单个文件your_client$cvsupdatetest.c执行上述命令后,用户当前任务目录中的文件test.c的内容与仓库中的最新版本完全一样了,由于在他checkout该文件后,在修正该文件的过程中能够他人曾经修正并提交了该文件,即他的修正不是基于库中最新版本。所以,他必需先update,再提交该文件才干提交胜利。不过能够有冲突要处理,缘由是对同一个文件的同一处代码进展了不同的修正。处理冲突的方法就是经过编辑文件,修正发生冲突的部分。对于逻辑问题CVS无法发现,所以版本冲突的处置应该与软件开发中的需求相结合。另外,可以经过more命令看以下合并后的文件,如,moretest.c。更新整个工程your_client$cvsupdate执行上述命令后,用户当前任务拷贝中属于本工程的一切文件与仓库中的最新版本完全一样了。需求留意其警告信息。

log命令每次提交一个CVS操作时,必需填写日志信息,否那么回绝提交。日志信息可以在命令行中加“-m〞参数表示。假设日志过长,可以不用“-m〞参数而直接运转,CVS会弹出一个编辑器,让用户在编辑器中输入注释信息。CVS对注释信息没有长度限制。这种日志信息是CVS进展软件变化跟踪的一种机制。每个版本均有日志信息。用户可以查看某个文件的全部历史日志记录,也可以指定查看某个版本或某个日期的日志记录。查看日志信息运用命令:cvslog〔53页〕。查看文件test.c全部日志,运用命令:your_client$cvslogtest.c查看test.c文件1.2版本的日志,运用命令:your_client$cvslog–r1.2test.c再如:cvslog–d“2002-06-01<2002-07-01;2002-08-01<2002-09-01〞共享日志在有时很有用,假设一个提交命令一次提交多个文件时,这些文件共享一个日志信息。假设他希望将几个文件一同提交,并且在之后能发现这些文件是同时提交的,那么只需一样的日志信息能协助他实现这一点。如:没空格your_client$cvscommit–m“fixedbugno.8888〞test.cMakefileyour_client$cvslogtest.cMakefilestatus命令该命令是查看曾经checkout出来的文件信息,如:your_client$cvsstatustest.cyour_client$cvsstatus–vtest.c(同时能查看tag和branch)版本回退〔55页〕假设用户提交了一个错误的版本,而不希望错误的版本是当前最新版本,一个简单的方法就是回退。方法之一,首先更新到最新版本,再取出旧版本重新提交。按以下次序执行命令:your_client$cvsupdateyour_client$cvs-Qupdate–p–r1.2test.c>test.c〔该命令不能在windows上执行〕上面命令假设,现错误版本号为1.3,正确版本号为1.2。该命令中“-Q〞是不输出无关的信息。留意不要执行命令cvsupdate–r1.2test.c这样会出现问题。your_client$cvscommit–m“revertedtorevision1.2〞test.ccvsdiff–r1.2–r1.4test.c结果可以看出两个版天性否一样方法之二,用命令:your_client$cvsupdate–j1.3–j1.2test.c将1.3版本与1.2版本之间的差别补到1.3版本上去。your_client$cvsstatustest.c查看checkout出的1.3版本的形状〔曾经在本地修正〕your_client$cvscommit–m“revertedtorevision1.2〞test.cyour_client$cvsdiff–r1.2test.c在工程中添加新的目录和文件命令:add将任务目录中新加的目录和文件添加到cvs库中的方法:在任务目录中创建目录和文件后才干进展。加文件的第一步:your_client$cvsaddnewfile执行第二步:your_client$cvscommit–m“added〞newfile加目录(不论目录能否为空目录〕只需一步:your_client$cvsaddnewder留意:目录中的文件需求分别参与。删除文件命令:remove必需先删除任务目录中的该文件,删除前应该将修正正的本文件提交保管,作为仓库中的新版本。命令如下:第一步:your_client$rmoldfile〔该命令不能在windows上执行〕your_client$cvsremoveoldfile上两步可以合并:your_client$cvsremove–foldfile第二步:your_client$cvscommit–m“removed〞oldfile大家可以按步骤看一下任务目录cvs目录下的Entries文件有什么变化。对删除的目录由于cvs不对目录进展版本控制,所以和删除文件不同,没有一个专门的命令。例如(要删除目录olddir):your_client$ls-aolddirtest.ctest1.ctest.pcyour_client$cdolddiryour_client$ls–atmp.ctmp1.c以下是删除目录olddir的命令:your_client$cvsremove–ftmp.ctmp1.cYour_client$cvscommit–m“removed〞tmp.ctmp1.cyour_client$cd..your_client$cvsupdate–Pyour_client$cvsupdate〔一切空目录均从任务目录中删除〕这时目录olddir从任务目录中消逝留意:此命令不会将库中新添加的目录取到任务目录中,可执行命令:your_client$cvsupdate-d去除、删除文件和目录名的更改由于cvs对文件和目录的更名缺乏支持,所以必需中其他方法处置,该文件makefile名的方法一为:your_client$mvmakefilemakefile.mkyour_client$cvsremove–fmakefileyour_client$cvscommit–m“removedforrenaming〞makefileyour_client$cvsaddmakefile.mkyour_client$cvscommit–m“addedasarenamedversionofmakefile〞makefile.mk方法二〔在效力器上直接操作〕:[root@cvshost/root]$cd/cvsap/src/master/test[root@cvshost/root]$mvmakefile,vmakefile.mk,v这种改法的危险:确保没人访问该文件;不知道什么时候执行的修正;无法获得文件在改名前的旧版本。改目录名的方法也有两种:方法一:在任务目录中创建新目录,将旧目录下除cvs目录外的一切文件和子目录移到新目录下。然后删除旧文件,在添加新目录,并添加文件。your_client$mkdirnewdiryour_client$mvoldnew/*newdiryour_client$cdolddiryour_client$cvsremove–f*your_client$cvsupdate–Pyour_client$cvsupdateyour_client$cd..your_client$cvsaddnewdir方法二:[root@cvshost/root]$cd/cvsap/src/master/test[root@cvshost/root]$mvolddirnewdir这种方法是制止任何人访问数据库,且方法危险,步主张运用。1.5测试环境进入测试环境步骤:在个人的pc机上启动linux或windows操作系统,配置好客户端。在linux系统中也可以用startx进入画面操作系统,而后用自带的终端操作命令。在windows系统中直接启动WinCVS即可。效力器的IP地址:4。效力器中cvs用户为du_cloud/du_cloud〔管理用户〕,usera[b][c]/usera[b][c]为开发用户。可以按照前面讲的命令去进展练习。

1.6CVS的高级主题版本标签和版本分支1.6.1版本在配置管理的语境里,版本的概念应该是revision,而不是version。版本的编号可以系统本人编,也可以用户自定义版本号。在系统本人编号时,假设工程中添加新文件,该文件不版本号码的第一位与本目录下版本号码最高的文件第一位一样,第二位是1。如,一个目录下有三个文件其版本号为1.5、2.8、5.14,那么新添加的文件版本号应该是5.1。假设用户本人给某个版本编号,那么这个版本编号必需大于工程中的一切文件的版本号。1.6.2版本标签〔tag〕版本标签是符号化的版本号码,具有直观、易于记忆和管理的优点。用于阶段式〔里程碑〕的版本标志。是衔接工程中不同文件不同版本的手段。例子:经过WinCVS展现版本标签标签的设定[Du_cloud@linuxtest]$cvstagrel_1_0_1test.c留意:很少给单个文件设标签。给目录下一切文件贴标签:[Du_cloud@linuxtest]$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–Fbaseline_1test.c我们将test.c的标签从旧版本1.5移到新版本1.6上。标签的命名baseline_1-20030623Release-20030522Nightly-20030321等。标签的查看[Du_cloud@linuxtest]$cvsstatus–vtest.c[Du_cloud@linuxtest]$cvsstatus–v确定标签要贴的位置[Du_cloud@linuxtest]$cvstag–cbaseline_1贴标签时留意不要遗忘曾经修正但没有提交的文件。按商定贴标签〔仓库中直接给模块加标签〕按日期贴标签(下例是将模块test的一切文件在20030624号0时0分前提交的最后一个版本贴上标签:[Du_cloud@linuxtest]$cvsrtag–D20030624nightly_20030624test按版本号、曾经有的标签贴新标签[Du_cloud@linuxtest]$cvsrtag–rnightly_20030624(老tag〕rel_2_1test(贴新标签但test下新加程序不挂到标签上)[Du_cloud@linuxtest]$cvsrtag–fnightly_20030624test(将test下新加的程序的最新版本强迫的挂到nightly_20030624上)[Du_cloud@linuxtest]$cvsrtag–r1.5rel_2_1test[Du_cloud@linuxtest]$cvsrtag–f1.5rel_2_1test附着性标签1)引起附着性标签的命令有:cvsupdate–rtag(标签号〕cvsupdate–Ddate〔更新到不晚于date的最新版本〕cvsupdate–rx.y〔版本号〕test.ccvscheckout–rtag(标签号〕cvscheckout–Ddate〔date之前最近的版本〕cvscheckout–rx.ytest.c2)附着性标签在版本分支中的运用:坚持版本分支号与标签有直接的关系,也就是标签附着在分支号上。3)坚持某些文件的不改动:只需对几个文件执行了cvsupdate–r命令,如:cvsupdate–r1.28ax.c那么版本1.28就会成为附着性标签,以后执行cvsupdate命令时这个文件不会更新,直到解除附着性为止。另外,还有1〕中的命令情况一样。4〕解除附着性标签:[Du_cloud@linuxtest]$cvsupdate–Atest.c该命令解除附着性标签,将checkout主干的最新版本并放本地。1.6.3如何获得某个特定的版本根据版本号码或版本标签获得[Du_cloud@linuxtest]$cvsupdate–r1.1test.c获得某一版本标签的整个软件的源代码:[Du_cloud@linuxtest]$cvscheckout–rbaseline_1test或者跳转到某个版本标签的版本〔曾经有任务拷贝的情况下〕[Du_cloud@linuxtest]$cvsupdate–rbaseline_1根据时间获得特定版本〔更新到不晚于date的最新版本〕[Du_cloud@linuxtest]$cvsupdate–D“2002-05-08〞[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时间〕假设要取回旧版本修正,而不是基于最新版本,修正后提交构成最新版本,方法有三: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[Du_cloud@linuxtest]$cp–rtest/home/du_cloud*将test.c的baseline_1标签挪动从旧版本1.5到新版本1.6上:cvstag–r1.6–Fbaseline_1test.c1.6.4版本分支[Du_cloud@linuxtest]$cvsco–dtest_brh–rbase_1test[Du_cloud@linuxtest_brh]$cvstag–bbase_1_brh[Du_cloud@linuxtest_brh]$cvsup–rbase_1_brh(可以在分支中修正程序如:test.c〕[Du_cloud@linuxtest_brh]$cvsci–m“fixedbugno111〞test.c(提交到分支上〕[Du_cloud@linuxtest]$cvsup–jbase_1_brh(分支版本合并到主干版本中〕[Du_cloud@linuxtest]$cvsci–m“mergedfrombranch:base_1_brh〞Cvs输出〔export)---发布代码(去出没有CVS痕迹的代码〕cvsexport–rrel_1〔主干上tag号〕–dtest_release1testcvsexport–rbrh_tag_brh(分支称号)–dshanghai_releasetest[Du_cloud@linuxtest]$tar–cvftest_release1.tartest_release1[Du_cloud@linuxtest]$gziptest_release1.tar1.6.5cvs与二进制文件重要的二进制文件也需求进展版本管理。如:web运用的大量图片、控件、动态衔接库、unix不同操作系统下的编译器、函数库等等。CVS在处置文本类型的文件,包括各种源代码文件、HTML、XML文件等。CVS对文本类型的文件进展版本管理时,会对文件做一些的处置,在客户端和UNIX仓库之间,CVS会自动进展回车、换行交换和关键字扩展处置。CVS对二进制文件管理的不好,和ClearCase相比,ClearCase具有文件类型,可以进展二进制文件的比较,但是ClearCase也要尽量防止二进制文件的分支和合并。CVS无法进展二进制文件的合并和分支,不过在实践运用中二进制文件的合并和分支是没意义的。CVS对二进制文件的管理和保管:1〕在CVS系统中保管二进制文件,应该运用“-kb〞选项来制止CVS对文件进展回车、换行交换和关键字扩展的加工。这个选项只需求在cvsadd命令中运用,本选项是一个附着性选项〔假设没有附着性每次执行cvs命令时都需求这个选项〕。如:cvsadd–kbbinfilecvscommit–m“addedbinfile〞binfile留意:二进制文件是原封不动的保管在仓库中,不能按照增量方式保管两个版本的差别,而是累加。2〕恢复二进制版本,假设忘记运用“-kb〞选项,添加了二进制文件并提交了仓库,库在UNIX/Linux平台上可以经过以下命令恢复:cvsadmin–kbbinfile〔反扩展〕cvsupdate–Abinfile〔任务拷贝中的文件恢复二进制〕假设库在windows平台上只能手工处置。CVS识别二进制文

温馨提示

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

评论

0/150

提交评论