




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1.1軟件配置管理(SCM)相關(guān)概念9.1.1版本管理不同產(chǎn)品的簡單介紹配置管理軟件分類:軟件的版本管理(CVS是軟件版本管理的工具)構(gòu)件管理缺陷和跟蹤管理產(chǎn)品介紹:1)高端產(chǎn)品如:RationalclearCase2)中端產(chǎn)品如:PVCS(pvcsversionmanager,pvcstracker)、Perforce3)低端產(chǎn)品vss1.2CVS概述 等不同的平臺上開發(fā)應(yīng)用,而共用一個CVS服務(wù)器。強(qiáng)大的分布式開發(fā)支持:CVS一直以支持分布式開發(fā)作為其基本特征。支持并行開發(fā):允許多個開發(fā)人員對同一個文件進(jìn)行開發(fā)工作,并對多個開發(fā)者的工作進(jìn)行整合。強(qiáng)大的可塑性:不論是一個源代碼組成的項目開發(fā)管理,還是代碼量超過幾百兆的項目,均管理自如。觸發(fā)器及定制功能:這種功能幫助開發(fā)者將CVS和變動/跟蹤系統(tǒng)緊密集成,以形成完整的軟件配置管理系統(tǒng)(SCM)。1.3CVS的安裝和配置如果未報錯誤,則CVS服務(wù)器安裝OK了。whereiscvs指定CVS倉庫cvs倉庫(Repository)是保存軟件資源的設(shè)備,可以根據(jù)需要選擇一目錄作為庫的位置,如,/cvsap,用超級用戶建相應(yīng)目錄。mkdir/cvssrcmkdir/cvssrc/masterCVS服務(wù)器的初始化在確定CVS倉庫位置后,就可以初始化CVS服務(wù)器。在初始化的過程中CVS創(chuàng)建其文件系統(tǒng),并產(chǎn)生原始內(nèi)容。在目錄/cvsap目錄下,以超級用戶身份在提示符下執(zhí)行:[root@hostcvs/root]$
[root@hostcvs/root]$cvs–d/cvssrc/masterinit其中的目錄project為項目源代碼的資源目錄。執(zhí)行命令:
[root@hostcvs/root]$ls/cvssrc/master
CVSROOT[root@hostcvs/root]$ls–a/cvssrc/master/CVSROOT該目錄下是原始內(nèi)容,如果該目錄為空,則初始化失敗。用戶組和用戶帳號的設(shè)立用戶組和帳號的設(shè)立原則:進(jìn)行配置管理的用戶和進(jìn)行開發(fā)的用戶分別設(shè)立不同的用戶組,如,cvsadmin和cvsuser兩個組,在兩個不同組上建立管理用戶和開發(fā)用戶。
CVS的權(quán)限設(shè)定的原則是:
CVS用戶必須擁有對/cvsap/src/master/CVSROOT目錄及其中所有文件的讀權(quán)限。
CVS用戶必須擁有對/cvsap/src/master/CVSROOT目錄下history文件的寫權(quán)限。
CVS用戶如果希望對系統(tǒng)中的模塊(如,project)代碼等資源的修改,必須對該目錄有寫權(quán)限。
對于普通的開發(fā)用戶應(yīng)該設(shè)為:對/cvsap/src/master/CVSROOT目錄及其下的所有文件有讀權(quán)限;對/cvsap/src/master/CVSROOT/history下的文件有寫權(quán)限;對某個項目(模塊)下的文件有讀寫權(quán)限(如,project)。
區(qū)分管理員和普通用戶的權(quán)限設(shè)定1)添加cvsadmin用戶組2)添加cvsuser用戶組3)添加CVS管理員帳號到cvsadmin4)添加CVS普通用戶到cvsuser5)讓cvs管理員擁有對配置目錄及其下文件的讀寫權(quán)限,同時給cvs的普通用戶對配置目錄及其下文件的讀權(quán)限。[root@cvshost/root]$chgrp–Rcvsadmin/cvsap/src/master/CVSROOT[root@cvshost/root]$chmod–R064\/cvsap/src/master/CVSROOT6)給cvs普通用戶對目錄/cvsap/src/master/project的讀寫權(quán)限[root@cvshost/root]$chgrp–Rcvsuser/cvsap/src/master/project[root@cvshost/root]$chmod–R060/cvsap/src/master/projectCVS的口令服務(wù)器
CVS口令服務(wù)器配置的目的是使cvs用戶的遠(yuǎn)程計算機(jī)能訪問CVS服務(wù)器。
其方法分兩步:
以超級用戶在hostcvs服務(wù)器上的/etc/services的文件中添加一行:cvspserver2401/tcp。最簡單的方法是執(zhí)行命令:echocvspserver2401/tcp>>/etc/services。注意:端口號2401不要重。這種方式是IBMUNIX系統(tǒng)。
如果使用的是Redhat6.2及以前的版本或使用inetd超級服務(wù)器的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=本本機(jī)器的的IP地地址}啟動inetd/xinetd超級級服務(wù)器器配置好的的口令服服務(wù)器是是包在inetd/xinetd超超級服務(wù)務(wù)器內(nèi)的的一個程程序。啟啟動的方方法為用用超級用用戶登陸陸,執(zhí)行行命令::[root@hostcvs/root]$unsetHOME用來清除除超級用用戶的$HOME的環(huán)環(huán)境變量量,否則則執(zhí)行CVS命命令會出出錯。[root@hostcvs/root]$/etc/rc.d/init.d/inetdrestart也可能是是/etc/init.d/inetdrestart?;蚧蛘遊root@hostcvs/root]$/etc/init.d/xinetdrestart至此,CVS服服務(wù)器安安裝和配配置工作作完成。。如果是HPUNIX則啟啟動超級級口令服服務(wù)器的的方法為為:ps––ef|grepinetd找出inetd進(jìn)程的進(jìn)進(jìn)程號kill–HUP<pid>讓inetd進(jìn)程重新新讀入配配置文件件使得CVS服務(wù)生效效測試CVS口令令服務(wù)器器在cvshos服務(wù)器器上,執(zhí)執(zhí)行如下下命令::[root@cvshost/root]$telnetlocalhost2401客戶端的的安裝和和配置介紹CVSROOT環(huán)環(huán)境變量量設(shè)置格格式:(19頁頁)客戶端的的Unix/linux的安裝和CVS服服務(wù)器安安裝過程程相同,,這里不不再贅述述。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為客客戶端的用戶戶在服務(wù)器端端的帳戶/用用戶名。CVSforWinCVS的永久久配置為::在窗口中選選擇Admin--》Preferences并在General選項卡卡中輸入,,如圖。關(guān)于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測試遠(yuǎn)程訪訪問CVSforunix/linux:[test@linuxtest]$cvslogincvspassword:WinCVS:AdminLogin輸入口令即即可。在VisualStudio中集集成CVS(23)1.4CVS工工作原理及及基本命令令倉庫的概念念已經(jīng)描述述,在CVS庫中CVS以一一種特殊的的文件格式式(RCS)來保存存這些資源源。倉庫按按照目錄和和文件結(jié)構(gòu)構(gòu)組織。倉倉庫中每個個目錄對應(yīng)應(yīng)一個項目目,如:和cvsap/src/master在同同一層次的的目錄除CVSROOT外,,其他每個個目錄都應(yīng)應(yīng)該是不同同的項目。。其保存了各各個版本的的文件,并并記錄了版版本的修改改信息。統(tǒng)一文件的的不同版本本之間具有有派生關(guān)系系,在版本本庫中只存存儲不同版版本間的改改動,從而而節(jié)約空間間。(29頁)工作拷貝是是指每個開開發(fā)人員在在開發(fā)過程程中擁有一一個獨立于于其他開發(fā)發(fā)人員的整整個軟件項項目的全部部代碼的拷拷貝,在客客戶端,它它和主拷貝貝(倉庫))構(gòu)成了CVS客戶戶/服務(wù)器器模式。工作拷貝的的每個目錄錄中有一個個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命命令令從客客戶戶端端登登陸陸服服務(wù)務(wù)器器。。在在客客戶戶端端有有目目錄錄,,如如,,test,,其其中中有有源源文文件件和和子子目目錄錄,,將將目目錄錄test下下的的內(nèi)內(nèi)容容加加入入服服務(wù)務(wù)器器作作為為一一個個項項目目((如如,,project,test)),,即即一一個個baseline。。命命令令為為:your_client$cdtestyour_client$cvslogin(loggingintoyourserver)cvspassword*****(你你的的服服務(wù)務(wù)器器端端cvs帳帳戶戶口口令令)your_client$cvsimport––m““initialimport””testSSEstart該命命令令將將當(dāng)當(dāng)前前目目錄錄((包包含含子子目目錄錄))下下的的所所有有內(nèi)內(nèi)容容,,都都放放進(jìn)進(jìn)CVS系系統(tǒng)統(tǒng)中中,其其中中,,-m表表示示在命命令令中中要要加加注釋釋內(nèi)內(nèi)容容test為為該該項項目目名名稱稱SSE為為廠廠商商標(biāo)標(biāo)識識start為為版版本本標(biāo)標(biāo)記記沒有有沖沖突突表表示示創(chuàng)創(chuàng)建建新新的的項項目目倉倉庫庫成成功功。。在WinCVS中中可可以以在在菜菜單單中中實實現(xiàn)現(xiàn)。。checkout命命令令checkout命命令令是是將將我我們們選選定定的的CVS服服務(wù)務(wù)器器上上指指定定倉倉庫庫中中的的一一個個項項目目代代碼碼取取到到本本地地的的工工作作目目錄錄下下。。如果果要要將將倉倉庫庫中中的的test項項目目的的代代碼碼取取到到本本地地個個人人目目錄錄下下,,執(zhí)執(zhí)行行::your_client$cd$HOMEyour_client$cvscheckouttest項目目代代碼碼會會保保存存在在個個人人目目錄錄$HOME/test下下供供你你個個人人開開發(fā)發(fā)或或修修改改。。當(dāng)當(dāng)你你打打開開checkout出出的的源源代代碼碼所所在在的的目目錄錄,,會會發(fā)發(fā)現(xiàn)現(xiàn)代代碼碼中中的的每每個個目目錄錄((包包括括每每個個子子目目錄錄))中中均均有有名名為為CVS的的子子目目錄錄。。這這些些目目錄錄并并不不屬屬于于代代碼碼,,它它是是CVS系系統(tǒng)統(tǒng)使使用用的的目目錄錄,,其其中中保保存存著著CVS管管理理文文件件。。這這是是工工作作拷拷貝貝與與普普通通目目錄錄文文件件的的不不同同。。這這些些文文件件對對于于CVS很很重重要要。。所所以以不不要要隨隨便便的的改改變變或或移移動動、、刪刪除除這這些些CVS目目錄錄及及其其中中的的文文件件。。解釋CVS子目目錄中中的文文件((43頁))注意::這里里的test為為用戶戶的目目標(biāo)目目錄。。根據(jù)據(jù)用戶戶client端的的配置置:CVSROOT:pserver:public@192.168.25.6:/cvsap/src/master,,命令令cvscheckouttest從從服服務(wù)器器的庫庫中,,即將將目錄錄/cvsap/src/master/test下的的所以以內(nèi)容容包括括子目目錄檢檢出到到客戶戶機(jī)的的$HOME/test目錄錄下,同時時生成成目錄錄test。當(dāng)然,,也可可以檢檢出單單個文文件。。diff命命令CVS能將將你工工作的的拷貝貝中的的源代代碼文文件與與倉庫庫中的的版本本進(jìn)行行比較較,發(fā)發(fā)現(xiàn)差差異。。(45頁))如:your_client$cvsdifftest.cyour_client$cvsdiff–ctest.c該命令令能看看到對對照的的結(jié)果果。應(yīng)應(yīng)該注注意的的是顯顯示內(nèi)內(nèi)容中中的““+””表示示添加加行,,“!!”表表示修修改,,其余余的顯顯示內(nèi)內(nèi)容和和UNIX系統(tǒng)統(tǒng)中的的diff命令令顯示示相仿仿。your_client$cvsdiff–r1.1–該命令令比較較庫中中兩個個不同同版本本文件件差異異。commit命命令提交操操作會會改變變倉庫庫內(nèi)容容。提提交之之后,,代碼碼成為為整個個系系統(tǒng)統(tǒng)的一一個部部分了了。由由于軟軟件的的復(fù)雜雜性,,需要要對提提交進(jìn)進(jìn)行控控制。。所以以在提提交時時應(yīng)當(dāng)當(dāng)遵循循一定定的流流程,,進(jìn)行行一定定的軟軟件質(zhì)質(zhì)量保保證((SQA))工作作,這這些工工作包包括評評審((review)、、提交交報告告等。。提交源源代碼碼的命命令為為:your_client$cvscommit––m““addstringvariableandheaderstring.h””test.c注意::如果果輸出出類似似以下下內(nèi)容容的結(jié)結(jié)果即即提交交失敗敗,此此時應(yīng)應(yīng)該用用update命令更新個人工工作目目錄下下的源源代碼碼。cvscommit:Up-to-datecheckfailedfor‘‘test.c’’cvs[commitaborted]:correctaboveerrorsfirst!這里的的“-m”后面的的是CVS注釋釋。CVS強(qiáng)制制要求求用戶戶在任任何一一次提提交、、導(dǎo)入入等操操作時時加入入注釋釋。養(yǎng)養(yǎng)成注注釋的的習(xí)慣慣非常常重要要。CVS支持持中文文注釋釋。如如果不不在命命令行行中加加入注注釋,,那么么CVS將將自動動啟動動默認(rèn)認(rèn)編輯輯器,,請用用戶輸輸入注注釋,,只有有用戶戶保存存注釋釋并退退出這這個編編輯器器之后后,提提交才才能成成功。。update命命令該命令既既可針對對單個文文件,也也可針對對一個目目錄,或或者整個個項目。。更新單個個文件your_client$cvsupdatetest.c執(zhí)行上述述命令后后,用戶戶當(dāng)前工工作目錄錄中的文文件test.c的內(nèi)內(nèi)容與倉倉庫中的的最新版版本完全全相同了了,因為為在你checkout該文文件后,,在修改改該文件件的過程程中可能能他人已已經(jīng)修改改并提交交了該文文件,即即你的修修改不是是基于庫庫中最新新版本。。所以,,你必須須先update,再再提交該該文件才才能提交交成功。。不過可可能有沖沖突要解解決,原原因是對對同一個個文件的的同一處處代碼進(jìn)進(jìn)行了不不同的修修改。解解決沖突突的辦法法就是通通過編輯輯文件,,修改發(fā)發(fā)生沖突突的部分分。對于于邏輯問問題CVS無法法發(fā)現(xiàn),,所以版版本沖突突的處理理應(yīng)該與與軟件開開發(fā)中的的需要相相結(jié)合。。另外,,可以通通過more命命令看以以下合并并后的文文件,如如,moretest.c。更新整個個項目your_client$cvsupdate執(zhí)行上述述命令后后,用戶戶當(dāng)前工工作拷貝貝中屬于于本項目目的所有有文件與與倉庫中中的最新新版本完完全相同同了。需需要注意意其警告告信息。。log命命令每次提交交一個CVS操操作時,,必須填填寫日志志信息,,否則拒拒絕提交交。日志志信息可可以在命命令行中中加“-m”參參數(shù)表示示。如果果日志過過長,可可以不用用“-m”參數(shù)數(shù)而直接接運(yùn)行,,CVS會彈出出一個編編輯器,,讓用戶戶在編輯輯器中輸輸入注釋釋信息。。CVS對注釋釋信息沒沒有長度度限制。。這種日日志信息息是CVS進(jìn)行行軟件變變化跟蹤蹤的一種種機(jī)制。。每個版本本均有日日志信息息。用戶戶可以查查看某個個文件的的全部歷歷史日志志記錄,,也可以以指定查查看某個個版本或或某個日日期的日日志記錄錄。查看看日志信信息使用用命令::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””共享日志志在有時時很有用用,如果果一個提提交命令令一次提提交多個個文件時時,這些些文件共共享一個個日志信信息。如如果你希希望將幾幾個文件件一起提提交,并并且在之之后能發(fā)發(fā)現(xiàn)這些些文件是是同時提提交的,,則只有有相同的的日志信信息能幫幫助你實實現(xiàn)這一一點。如如:沒空格your_client$cvscommit––m““fixedbugno.8888”test.cMakefileyour_client$cvslogtest.cMakefilestatus命命令該命令是查查看已經(jīng)經(jīng)checkout出出來的文文件信息息,如:your_client$cvsstatustest.cyour_client$cvsstatus––vtest.c(同時能能查看tag和和branch)版本回退退(55頁頁)如果用戶戶提交了了一個錯錯誤的版版本,而而不希望望錯誤的的版本是是當(dāng)前最最新版本本,一個個簡單的的方法就就是回退退。方法之一一,首先先更新到到最新版版本,再再取出舊舊版本重重新提交交。按下下列秩序序執(zhí)行命命令:your_client$cvsupdateyour_client$cvs-Qupdate–p–r1.2test.c>test.c(該命令令不能在在windows上執(zhí)執(zhí)行)上面命令令假設(shè),現(xiàn)錯錯誤版本本號為1.3,,正確版版本號為為1.2。該命命令中““-Q””是不輸輸出無關(guān)關(guān)的信息息。注意意不要執(zhí)執(zhí)行命令令cvsupdate––r1.2test.c這樣樣會出現(xiàn)現(xiàn)問題。your_client$cvscommit––m““revertedtorevision1.2”test.ccvsdiff–r1.2–結(jié)果可以以看出兩兩個版本本是否相相同方法之二二,用命命令:your_client$cvsupdate––j1.3––j1.2test.c將1.3版本與與1.2版本之之間的差差異補(bǔ)到到1.3版本上上去。your_client$cvsstatustest.c查看checkout出出的1.3版版本的狀態(tài)(已經(jīng)在本地地修改)your_client$cvscommit–m“revertedtorevision1.2”test.cyour_client$cvsdiff–在項目中添加加新的目錄和和文件命令::add將工作目錄中中新加的目錄錄和文件添加加到cvs庫庫中的方法::在工作目錄中中創(chuàng)建目錄和和文件后才能能進(jìn)行。加文件的第一一步:your_client$cvsaddnewfile執(zhí)行第二步::your_client$cvscommit–m“added”newfile加目錄(不管管目錄是否為為空目錄)只只需一步:your_client$cvsaddnewder注意:目錄中中的文件需要要分別加入。。刪除文件命令令:remove必須先刪除工工作目錄中的的該文件,刪刪除前應(yīng)該將將修改過的本本文件提交保保存,作為倉倉庫中的新版版本。命令如如下:第一步:your_client$rmoldfile(該該命令不能在在windows上執(zhí)行行)your_client$cvsremoveoldfile上兩步可以合合并:your_client$cvsremove–foldfile第二步:your_client$cvscommit–m““removed”oldfile大家可以按步步驟看一下工工作目錄cvs目錄下的的Entries文件有有什么變化。。對刪除的目錄錄因為cvs不不對目錄進(jìn)行行版本控制,,所以和刪除除文件不同,,沒有一個專專門的命令。。例如(要刪刪除目錄olddir):your_client$ls-aolddirtest.ctest1.ctest.pcyour_client$cdolddiryour_client$ls––a以下是刪除目目錄olddir的命令令:your_client$cvsremove–ftmp.ctmp1.cYour_client$cvscommit–m““removed”tmp.ctmp1.cyour_client$cd..your_client$cvsupdate–Pyour_client$cvsupdate(所有空目錄錄均從工作目目錄中刪除))這時目錄olddir從從工作目錄中中消失注意:此命令令不會將庫中中新添加的目目錄取到工作作目錄中,可可執(zhí)行命令::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方法二(在服服務(wù)器上直接接操作):[root@cvshost/root]$cd/cvsap/src/master/test[root@cvshost/root]$mvmakefile,vmakefile.mk,v這種改法的危危險:確保沒沒人訪問該文文件;不知道道什么時候執(zhí)執(zhí)行的修改;;無法獲得文文件在改名前前的舊版本。。改目錄名的方方法也有兩種種:方法一:在工工作目錄中創(chuàng)創(chuàng)建新目錄,,將舊目錄下下除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這種方法是禁禁止任何人訪訪問數(shù)據(jù)庫,,且方法危險險,步主張使使用。1.5測測試環(huán)境進(jìn)入測試環(huán)境境步驟:在個人的pc機(jī)上啟動linux或或windows操作系系統(tǒng),配置好好客戶端。在在linux系統(tǒng)中也可可以用startx進(jìn)入入畫面操作系系統(tǒng),而后用用自帶的終端端操作命令。。在windows系統(tǒng)統(tǒng)中直接啟動動WinCVS即可。。。服務(wù)器中cvs用戶為為du_cloud/du_cloud(管理理用戶),usera[b][c]/usera[b][c]為開發(fā)發(fā)用戶。可以按照前面面講的命令去去進(jìn)行練習(xí)。。1.6CVS的高高級主題版本本標(biāo)簽和版本本分支版版本在配置管理的的語境里,版版本的概念應(yīng)應(yīng)該是revision,而不是version。版本的編號可可以系統(tǒng)自己己編,也可以以用戶自定義義版本號。在在系統(tǒng)自己編編號時,如果果項目中添加加新文件,該該文件不版本本號碼的第一一位與本目錄錄下版本號碼碼最高的文件件第一位相同同,第二位是是1。如,一一個目錄下有有三個文件其其版本號為1.5、2.8、5.14,那么新新添加的文件件版本號應(yīng)該該是5.1。。如果用戶自自己給某個版版本編號,則則這個版本編編號必須大于于項目中的所所有文件的版版本號。版版本標(biāo)簽((tag)版本標(biāo)簽是符符號化的版本本號碼,具有有直觀、易于于記憶和管理理的優(yōu)點。用用于階段式((里程碑)的的版本標(biāo)記。。是連接項目目中不同文件件不同版本的的手段。例子:通過WinCVS展示版本標(biāo)標(biāo)簽標(biāo)簽的設(shè)定[Du_cloud@linuxtest]$cvstagrel_1_0_1test.c注意:很少給給單個文件設(shè)設(shè)標(biāo)簽。給目錄下所有有文件貼標(biāo)簽簽:[Du_cloud@linuxtest]$cvstagbaseline_1標(biāo)簽的刪除、、重命名和移移動刪除:[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的標(biāo)標(biāo)簽從舊版本本1.5移到到新版本1.6上。標(biāo)簽的命名baseline_1-20030623Release-20030522Nightly-20030321等。標(biāo)簽的查看看[Du_cloud@linuxtest]$cvsstatus–vtest.c[Du_cloud@linuxtest]$cvsstatus–v確定標(biāo)簽要要貼的位置置[Du_cloud@linuxtest]$cvstag–cbaseline_1貼標(biāo)簽時注注意不要遺遺忘已經(jīng)修修改但沒有有提交的文文件。按約定貼標(biāo)標(biāo)簽(倉庫庫中直接給給模塊加標(biāo)標(biāo)簽)按日期貼標(biāo)標(biāo)簽(下例例是將模塊塊test的所有文文件在20030624號0時0分前前提交的最最后一個版版本貼上標(biāo)標(biāo)簽:[Du_cloud@linuxtest]$cvsrtag––D20030624nightly_20030624test按版本號、、已經(jīng)有的的標(biāo)簽貼新新標(biāo)簽[Du_cloud@linuxtest]$cvsrtag––rnightly_20030624(老老tag))rel_2_1test(貼新新標(biāo)簽但test下下新加程序序不掛到標(biāo)標(biāo)簽上)[Du_cloud@linuxtest]$cvsrtag––fnightly_20030624test(將test下新加加的程序的的最新版本本強(qiáng)制的掛掛到nightly_20030624上)[Du_cloud@linuxtest]$cvsrtag––r1.5rel_2_1test[Du_cloud@linuxtest]$cvsrtag––f1.5rel_2_1test附著性標(biāo)簽簽1)引起附附著性標(biāo)簽簽的命令有有:cvsupdate–rtag(標(biāo)簽號號)cvsupdate–Ddate(更新新到不晚于于date的最新版版本)cvsupdate–rx.y(版本號號)test.ccvscheckout––rtag(標(biāo)標(biāo)簽號)cvscheckout––Ddate((date之前最最近的版本本)cvscheckout–2)附著性性標(biāo)簽在版版本分支中中的使用::保持版本本分支號與與標(biāo)簽有直直接的關(guān)系系,也就是是標(biāo)簽附著著在分支號號上。3)保持某某些文件的的不改動::只要對幾個個文件執(zhí)行行了cvsupdate––r命命令,如::cvsupdate–則則版本1.28就會會成為附著著性標(biāo)簽,,以后執(zhí)行行cvsupdate命命令時這個個文件不會會更新,直直到解除附附著性為止止。另外,還有有1)中的的命令情況況相同。4)解除附附著性標(biāo)簽簽:[Du_cloud@linuxtest]$cvsupdate–Atest.c該命令解除除附著性標(biāo)標(biāo)簽,將checkout主主干的最新新版本并放放本地。1.6.3如何獲獲得某個特特定的版本本根據(jù)版本號號碼或版本本標(biāo)簽獲得得獲得某一版版本標(biāo)簽的的整個軟件件的源代碼碼:[Du_cloud@linuxtest]$cvscheckout––rbaseline_1test或者跳轉(zhuǎn)到到某個版本本標(biāo)簽的版版本(已經(jīng)經(jīng)有工作拷拷貝的情況況下)[Du_cloud@linuxtest]$cvsupdate–rbaseline_1根據(jù)時間獲獲得特定版版本(更新新到不晚于于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標(biāo)標(biāo)簽簽移移動動從從舊舊版版本本1.5到到新新版版本本1.6上上::cvstag––r1.6––Fbaseline_1test.c版版本本分分支支[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)---發(fā)發(fā)布布代代碼碼(去去出出沒沒有有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.tar與與二二進(jìn)進(jìn)制制文文件件重要要的的二二進(jìn)進(jìn)制制文文件件也也需需要要進(jìn)進(jìn)行行版版本本管管理理。。如如::web應(yīng)應(yīng)用用的的大大量量圖圖片片、、控控件件、、動動態(tài)態(tài)連連接接庫庫、、unix不不同同操操作作系系統(tǒng)統(tǒng)下下的的編編譯譯器器、、函函數(shù)數(shù)庫庫等等等等。。CVS在在處處理理文文本本類類型型的的文文件件,,包包括括各各種種源源代代碼碼文文件件、、HTML、、XML文文件件等等。。CVS對對文文本本類類型型的的文文件件進(jìn)進(jìn)行行版版本本管管理理時時,,會會對對文文件件做做一一些些秘秘密密的的處處理理,,在在客客戶戶端端和和UNIX倉倉庫庫之之間間,,CVS會會自自動動進(jìn)進(jìn)行行回回車車、、換換行行替替換換和和關(guān)關(guān)鍵鍵字字?jǐn)U擴(kuò)展展處處理理。。CVS對對二二進(jìn)進(jìn)制制文文件件管管理理的的不不好好,,和和ClearCase相相比比,,ClearCase具具有有文文件件類類型型,,可可以以進(jìn)進(jìn)行行二二進(jìn)進(jìn)制制文文件件的的比比較較,,但但是是ClearCase也也要要盡盡量量避避免免二二進(jìn)進(jìn)制制文文件件的的分分支支和和合合并并。。CVS無無法法進(jìn)進(jìn)行行二二進(jìn)進(jìn)制制文文件件的的合合并并和和分分支支,,不不過過在在實實際際應(yīng)應(yīng)用用中中二二進(jìn)進(jìn)制制文文件件的的合合并并和和分分支支是是沒沒意意義義的的。。CVS對二進(jìn)進(jìn)制文件的管管理和保存::1)在CVS系統(tǒng)中保存存二進(jìn)制文件件,應(yīng)該使用用“-kb””選項來禁止止CVS對文文件進(jìn)行回車車、換行替換換和關(guān)鍵字?jǐn)U擴(kuò)展的加工。。這個選項只只需要在cvsadd命令中使使用,本選項項是一個附著著性選項(如如果沒有附著著性每次執(zhí)行行cvs命令令時都需要這這個選項)。。如:cvsadd––kbbinfilecvscommit––m“addedbinfile”binfile注意:二進(jìn)制制文件是原封封不動的保存存在倉庫中,,不能按照增增量方式保存存兩個版本的的差異,而是是累加。2)恢復(fù)二進(jìn)進(jìn)制版本,如如果忘記使用用“-kb””選項,添加加了二進(jìn)制文文件并提交了了倉庫,庫在在UNIX/Linux平臺上可以以通過以下命命令恢復(fù):cvsadmin––kbbinfile(反擴(kuò)展))cvsupdate––Abinfile(工作拷貝貝中的文件恢恢復(fù)二進(jìn)制))如果庫在windows平臺上只能能手工處理。。CVS識別二二進(jìn)制文件:cvs中使使用一種簡單單的技術(shù)來辨辨別二進(jìn)制文文件—根據(jù)擴(kuò)擴(kuò)展名。但需需要進(jìn)行配置置,配置文件件在服務(wù)器的的/cvsap/src/master/CVSROOT目錄下的文件件cvswrappers。首先執(zhí)執(zhí)行:cvsco/cvsap/src/master/CVSROOT/cvswrappers打開該文件,,如在該文件件的末尾加::*.gif––k‘-b’*.jpg––k‘-b’*.bmp––k‘-b’*.mpp––k‘-b’*.xls––k‘-b’*.ppt––k‘-b’再執(zhí)行:cvsci–m““add7binary
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年配氣機(jī)構(gòu):進(jìn)排氣門項目建議書
- 醫(yī)院職工食堂建設(shè)合同范本
- 勞動合同法附合同范本
- 藥店銷售協(xié)議合同范本
- 個人 融資傭金合同范本
- 博物館合同范例
- 勞務(wù)合同范本小時工
- 土地土地租賃合同范本
- 租憑吊車合同范本
- 冷凝機(jī)組采購合同范本
- 2025年徐州地鐵集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 6月26國際禁毒日防范青少年藥物濫用禁毒宣傳課件
- 老舊小區(qū)基礎(chǔ)設(shè)施環(huán)境改造工程施工質(zhì)量因素的分析及控制方法
- 伊斯蘭教完整版本
- 華師版初中九年級數(shù)學(xué)HS下冊教案(全一冊)
- 2024年10月自考00107現(xiàn)代管理學(xué)試題及答案
- 2024解析:第十八章電功率-講核心(解析版)
- 2024年新疆區(qū)公務(wù)員錄用考試《行測》真題及答案解析
- 嚴(yán)重創(chuàng)傷患者緊急救治血液保障模式與輸血策略中國專家共識(2024版)
- 【川教版】《生命 生態(tài) 安全》五下全冊課件
- 英文在職證明模版
評論
0/150
提交評論