




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、9.1.1 版本管理不同產(chǎn)品的簡單引見配置管理軟件分類:軟件的版本管理CVS是軟件版本管理的工具構(gòu)件管理缺陷和跟蹤管理產(chǎn)品引見:1高端產(chǎn)品如:Rational clearCase2 中端產(chǎn)品如:PVCS pvcs version manager ,pvcs tracker、Perforce3低端產(chǎn)品vss cvscvs是什么是什么 cvscvs是是Concurrent Versions SystemConcurrent Versions System的縮寫。是強(qiáng)大的縮寫。是強(qiáng)大而復(fù)雜的現(xiàn)代版本控制系統(tǒng)。而復(fù)雜的現(xiàn)代版本控制系統(tǒng)。 cvscvs的特點(diǎn)的特點(diǎn) 免費(fèi):作為開放源代碼的世界杰作,免費(fèi):
2、作為開放源代碼的世界杰作,CVSCVS是免費(fèi)的。是免費(fèi)的。在中國,北京國聯(lián)捷訊信息技術(shù)在中國,北京國聯(lián)捷訊信息技術(shù) unitedinfo unitedinfo 為需求為需求CVSCVS技術(shù)支持的公技術(shù)支持的公司提供咨詢。司提供咨詢。 跨平臺:跨平臺:CVSCVS支持一切的操作系統(tǒng),而且作為典型的支持一切的操作系統(tǒng),而且作為典型的客戶客戶/ /效力器方式的軟件,效力器方式的軟件,CVSCVS支持跨平臺開發(fā),支持跨平臺開發(fā), cvscvs可以用在可以用在AIXAIX、 HPUXHPUX、SolarisSolaris、SUNOSSUNOS、LinuxLinux、 WindowsWindows等不同的
3、平臺上開發(fā)運(yùn)用,而共用一個CVS效力器。 強(qiáng)大的分布式開發(fā)支持:CVS不斷以支持分布式開發(fā)作為其根本特征。 支持并行開發(fā):允許多個開發(fā)人員對同一個文件進(jìn)展開發(fā)任務(wù),并對多個開發(fā)者的任務(wù)進(jìn)展整合。 強(qiáng)大的可塑性:不論是一個源代碼組成的工程開發(fā)管理,還是代碼量超越幾百兆的工程,均管理自若。 觸發(fā)器及定制功能:這種功能協(xié)助開發(fā)者將CVS和變動/跟蹤系統(tǒng)嚴(yán)密集成,以構(gòu)成完好的軟件配置管理系統(tǒng)SCM。 在在unix/linuxunix/linux平臺上安裝平臺上安裝CVSCVS效力器效力器 安裝是超級用戶執(zhí)行的。假設(shè)選擇一臺安裝是超級用戶執(zhí)行的。假設(shè)選擇一臺LinuxLinux效力器,效力器,假設(shè)主機(jī)名
4、為假設(shè)主機(jī)名為hostcvshostcvs。在。在cvscvs權(quán)威網(wǎng)站權(quán)威網(wǎng)站 上下載包上下載包c(diǎn)vs-1.11.1p1.tar.gzcvs-1.11.1p1.tar.gz在在linuxlinux中能夠曾經(jīng)包含后中能夠曾經(jīng)包含后CVSCVS。運(yùn)轉(zhuǎn):。運(yùn)轉(zhuǎn): roothostcvs /root$ gzip dvf cvs-roothostcvs /root$ gzip dvf cvs-1.11.1p1.tar.gz1.11.1p1.tar.gz roothostcvs /root$ tar xvf cvs- roothostcvs /root$ tar
5、 xvf cvs-1.11.1p1.tar1.11.1p1.tar 進(jìn)入目錄進(jìn)入目錄cvs-1.11.1p1,cvs-1.11.1p1,運(yùn)轉(zhuǎn):運(yùn)轉(zhuǎn): roothostcvs /root$ ./configureroothostcvs /root$ ./configure roothostcvs /root$ make roothostcvs /root$ make roothostcvs /root$ make install roothostcvs /root$ make install 假設(shè)未報錯誤,那么CVS效力器安裝OK了。 whereis cvs指定CVS倉庫 cvs倉庫Reposi
6、tory是保管軟件資源的設(shè)備,可以根據(jù)需求選擇一目錄作為庫的位置,如,/cvsap ,用超級用戶建相應(yīng)目錄。 mkdir /cvssrc mkdir /cvssrc/masterCVS效力器的初始化 在確定CVS倉庫位置后,就可以初始化CVS效力器。在初始化的過程中CVS創(chuàng)建其文件系統(tǒng),并產(chǎn)生原始內(nèi)容。在目錄/cvsap目錄下,以超級用戶身份在提示符下執(zhí)行: roothostcvs /root$ roothostcvs /root$ roothostcvs /root$ cvs d /cvssrc/master init roothostcvs /root$ cvs d /cvssrc/mas
7、ter init 其中的目錄其中的目錄projectproject為工程源代碼的資源目錄。執(zhí)行命令:為工程源代碼的資源目錄。執(zhí)行命令: roothostcvs /root$ ls /cvssrc/masterroothostcvs /root$ ls /cvssrc/master CVSROOT CVSROOT roothostcvs /root$ ls a /cvssrc/master/CVSROOT roothostcvs /root$ ls a /cvssrc/master/CVSROOT 該目錄下是原始內(nèi)容,假設(shè)該目錄為空,那么初始化失敗。該目錄下是原始內(nèi)容,假設(shè)該目錄為空,那么初始化
8、失敗。用戶組和用戶帳號的設(shè)立用戶組和用戶帳號的設(shè)立 用戶組和帳號的設(shè)立原那么:進(jìn)展配置管理的用戶和進(jìn)展開發(fā)的用戶分別用戶組和帳號的設(shè)立原那么:進(jìn)展配置管理的用戶和進(jìn)展開發(fā)的用戶分別設(shè)立不同的用戶組,如,設(shè)立不同的用戶組,如,cvsadmincvsadmin和和cvsuser cvsuser 兩個組,在兩個不同組上兩個組,在兩個不同組上建立管理用戶和開發(fā)用戶。建立管理用戶和開發(fā)用戶。 CVSCVS的權(quán)限設(shè)定的原那么是:的權(quán)限設(shè)定的原那么是: CVS用戶必需擁有對/cvsap/src/master/CVSROOT目錄及其中一切文件的讀權(quán)限。 CVS用戶必需擁有對/cvsap/src/master/
9、CVSROOT目錄下history文件的寫權(quán)限。 CVS用戶假設(shè)希望對系統(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è)定區(qū)分管理員和普通用戶的權(quán)限設(shè)定 1 1添加添加cvsadmincvsadmin用戶組用戶組 2 2添加添加cvsusercvsuser用戶組用戶組 3 3添加添加CVSCVS管理
10、員帳號到管理員帳號到cvsadmincvsadmin 4 4 添加添加CVSCVS普通用戶到普通用戶到cvsusercvsuser 5 5 讓讓cvscvs管理員擁有對配置目錄及其下文件的讀寫權(quán)管理員擁有對配置目錄及其下文件的讀寫權(quán)限,同時給限,同時給cvscvs的普通用戶對配置目錄及其下文件的讀的普通用戶對配置目錄及其下文件的讀權(quán)限。權(quán)限。 rootcvshost /root $ chgrp R cvsadmin rootcvshost /root $ chgrp R cvsadmin /cvsap/src/master/CVSROOT/cvsap/src/master/CVSROOT ro
11、otcvshost /root $ chmod R 064 rootcvshost /root $ chmod R 064 /cvsap/src/master/CVSROOT/cvsap/src/master/CVSROOT 6 6 給給cvscvs普通用戶對目錄普通用戶對目錄/cvsap/src/master/project/cvsap/src/master/project的讀寫權(quán)限的讀寫權(quán)限 rootcvshost /root $chgrp R cvsuser rootcvshost /root $chgrp R cvsuser /cvsap/src/master/project/cvsa
12、p/src/master/project rootcvshost /root $ chmod R 060 rootcvshost /root $ chmod R 060 /cvsap/src/master/project/cvsap/src/master/projectCVSCVS的口令效力器的口令效力器 CVSCVS口令效力器配置的目的是使口令效力器配置的目的是使cvscvs用戶的用戶的遠(yuǎn)程計(jì)算機(jī)能訪問遠(yuǎn)程計(jì)算機(jī)能訪問CVSCVS效力器。效力器。 其方法分兩步:其方法分兩步: 以超級用戶在以超級用戶在hostcvshostcvs效力器上的效力器上的/etc/services/etc/serv
13、ices的文件中添加一行:的文件中添加一行:cvspserver 2401/tcpcvspserver 2401/tcp。最簡單的方法是執(zhí)。最簡單的方法是執(zhí)行命令:行命令:echo cvspserver 2401/tcp echo cvspserver 2401/tcp /etc/services/etc/services。留意:端口號。留意:端口號24012401不要重。不要重。這種方式是這種方式是IBM UNIXIBM UNIX系統(tǒng)。系統(tǒng)。 假設(shè)運(yùn)用的是假設(shè)運(yùn)用的是Redhat6.2Redhat6.2及以前的版本或運(yùn)用及以前的版本或運(yùn)用inetdinetd超級效力器的超級效力器的UNIXU
14、NIX版本,用超級用戶在版本,用超級用戶在/etc/inetd.conf/etc/inetd.conf文件中添加一行,加在末文件中添加一行,加在末尾:尾: cvspserver stream tcp nowait root /usr/local/bin/cvs cvs f cvspserver stream tcp nowait root /usr/local/bin/cvs cvs f allow root=/cvswork pserverallow root=/cvswork pserver。 假設(shè)是假設(shè)是Redhat 7.1Redhat 7.1或其他新版本的或其他新版本的LinuxLin
15、ux,那么用超級用戶身份翻開,那么用超級用戶身份翻開/etc/xinetd.conf/etc/xinetd.conf文件,并在文件中添加:文件,并在文件中添加: service 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
16、=/cvssrc/master pserver server_args = -f -allow-root=/cvssrc/master pserver bind = bind = 本機(jī)器的本機(jī)器的IPIP地址地址 啟動啟動inetd/xinetdinetd/xinetd超級效力器超級效力器 配置好的口令效力器是包在配置好的口令效力器是包在inetd/xinetdinetd/xinetd超超級效力器內(nèi)的一個程序。啟動的方法為用超級級效力器內(nèi)的一個程序。啟動的方法為用超級用戶登陸,執(zhí)行命令:用戶登陸,執(zhí)行命令: roothostcvs /root$ unset HOME roothostcvs /
17、root$ unset HOME 用來去除超級用戶的用來去除超級用戶的$HOME$HOME的環(huán)境變量,否的環(huán)境變量,否那么執(zhí)行那么執(zhí)行CVSCVS命令會出錯。命令會出錯。 roothostcvs /root$ roothostcvs /root$ /etc/rc.d/init.d/inetd restart/etc/rc.d/init.d/inetd restart 也能夠是也能夠是/etc/init.d/inetd restart/etc/init.d/inetd restart?;?。或者者 roothostcvs /root$ roothostcvs /root$ /etc/init.d/
18、xinetd restart /etc/init.d/xinetd restart 至此,至此,CVSCVS效力器安裝和配置任務(wù)完成。效力器安裝和配置任務(wù)完成。 假設(shè)是假設(shè)是HP UNIX HP UNIX 那么啟動超級口令效力器的方法為:那么啟動超級口令效力器的方法為:ps ef |grep inetdps ef |grep inetd找出找出inetdinetd進(jìn)程的進(jìn)程號進(jìn)程的進(jìn)程號kill HUP kill HUP 讓讓inetdinetd進(jìn)程重新讀入配置文進(jìn)程重新讀入配置文件使得件使得CVSCVS效力生效效力生效測試測試CVSCVS口令效力器口令效力器在在cvshoscvshos效力器
19、上,執(zhí)行如下命令:效力器上,執(zhí)行如下命令:rootcvshost /root$ telnet localhost 2401rootcvshost /root$ telnet localhost 2401 客戶端的安裝和配置客戶端的安裝和配置 引見引見CVSROOTCVSROOT環(huán)境變量設(shè)置格式:環(huán)境變量設(shè)置格式: 1919頁頁 客戶端的客戶端的Unix/linuxUnix/linux的安裝和的安裝和CVSCVS效力器安裝過效力器安裝過程一樣,這里不再贅述。程一樣,這里不再贅述。CVS for unix/linuxCVS for unix/linux客客戶端的永久配置方法為:戶端的永久配置方法為
20、: sh/kshsh/ksh,用編輯器翻開,用編輯器翻開$HOME/.bash_profile$HOME/.bash_profile文文件添加:件添加: CVSROOT=:pserver:cloud4:/src/maCVSROOT=:pserver:cloud4:/src/masterster export CVSROOT export CVSROOT csh,csh,用編輯器翻開用編輯器翻開$HOME/.cshrc$HOME/.cshrc文件,在文件的文件,在文件的末尾添加:末尾添加:setenv setenv CVSROOT :pserver:p
21、ublic:/cvssrCVSROOT :pserver:public:/cvssrc/masterc/master 其中的其中的publicpublic為客戶端的用戶在效力器端的帳為客戶端的用戶在效力器端的帳戶戶/ /用戶名。用戶名。 CVS for WinCVS的永久配置為:在窗口中選擇Admin-?Preferences并在General選項(xiàng)卡中輸入,如圖。關(guān)于unix/linux客戶端的暫時配置:sh/bash: testlinux test$export CVSROOT =:pserver:public:/cvs
22、ap/src/mastercsh: testlinux test$ setenv CVSROOT :pserver:public:/cvsap/src/master 測試遠(yuǎn)程訪問測試遠(yuǎn)程訪問 CVS for unix/linux:CVS for unix/linux: testlinux test$ cvs logintestlinux test$ cvs login cvs password:cvs password: WinCVSWinCVS: AdminAdminLoginLogin 輸入口令即可。輸入口令即可。 在在Visual Studio Visual St
23、udio 中集成中集成CVS CVS 23231.4 CVS1.4 CVS任務(wù)原理及根本命令任務(wù)原理及根本命令 倉庫的概念曾經(jīng)描畫,在CVS庫中CVS以一種特殊的文件格式RCS來保管這些資源。倉庫按照目錄和文件構(gòu)造組織。倉庫中每個目錄對應(yīng)一個工程,如:和cvsap/src/master在同一層次的目錄除CVSROOT外,其他每個目錄都應(yīng)該是不同的工程。其保管了各個版本的文件,并記錄了版本的修正信息。 一致文件的不同版本之間具有派生關(guān)系,在版本庫中只存儲不同版本間的改動,從而節(jié)約空間。29頁 任務(wù)拷貝是指每個開發(fā)人員在開發(fā)過程中擁有一個獨(dú)立于其他開發(fā)人員的整個軟件工程的全部代碼的拷貝,在客戶端,
24、它和主拷貝倉庫構(gòu)成了CVS客戶/效力器方式。任務(wù)拷貝的每個目錄中有一個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 initimport命令 從客戶端登陸效力器。在客戶端有目錄,如,test,其中有源文件和子目錄,
25、將目錄test下的內(nèi)容參與效力器作為一個工程如,project,test,即一個baseline。命令為: your_client$ cd test your_client$ cd test your_client$ cvs login your_client$ cvs login logging in to logging in to your serveryour server cvs password cvs password * * * * * * 他的效力器端他的效力器端cvscvs帳戶口帳戶口令令 your_client$ cvs import m “initial your_cl
26、ient$ cvs import m “initial importimport test SSE starttest SSE start 該命令將當(dāng)前目錄包含子目錄下的一切內(nèi)容,該命令將當(dāng)前目錄包含子目錄下的一切內(nèi)容,都放進(jìn)都放進(jìn)CVSCVS系統(tǒng)中系統(tǒng)中, ,其中,其中,-m -m 表示在命令中要加注釋內(nèi)容表示在命令中要加注釋內(nèi)容test test 為該工程稱號為該工程稱號SSE SSE 為廠商標(biāo)識為廠商標(biāo)識start start 為版本標(biāo)志為版本標(biāo)志沒有沖突表示創(chuàng)建新的工程倉庫勝利。沒有沖突表示創(chuàng)建新的工程倉庫勝利。在在WinCVSWinCVS中可以在菜單中實(shí)現(xiàn)。中可以在菜單中實(shí)現(xiàn)。 ch
27、eckoutcheckout命令命令 checkoutcheckout命令是將我們選定的命令是將我們選定的CVSCVS效力器上指定倉庫效力器上指定倉庫中的一個工程代碼取到本地的任務(wù)目錄下。中的一個工程代碼取到本地的任務(wù)目錄下。 假設(shè)要將倉庫中的假設(shè)要將倉庫中的testtest工程的代碼取到本地個人目工程的代碼取到本地個人目錄下,執(zhí)行:錄下,執(zhí)行: your_client$ cd $HOMEyour_client$ cd $HOME your_client$ cvs checkout testyour_client$ cvs checkout test 工程代碼會保管在個人目錄工程代碼會保管在個
28、人目錄$HOME/test$HOME/test下供他個人開下供他個人開發(fā)或修正。當(dāng)他翻開發(fā)或修正。當(dāng)他翻開checkoutcheckout出的源代碼所在的目錄,出的源代碼所在的目錄,會發(fā)現(xiàn)代碼中的每個目錄包括每個子目錄中均有會發(fā)現(xiàn)代碼中的每個目錄包括每個子目錄中均有名為名為CVSCVS的子目錄。這些目錄并不屬于代碼,它是的子目錄。這些目錄并不屬于代碼,它是CVSCVS系統(tǒng)運(yùn)用的目錄,其中保管著系統(tǒng)運(yùn)用的目錄,其中保管著CVSCVS管理文件。這是任務(wù)管理文件。這是任務(wù)拷貝與普通目錄文件的不同。這些文件對于拷貝與普通目錄文件的不同。這些文件對于CVSCVS很重要。很重要。所以不要隨意的改動或挪動、
29、刪除這些所以不要隨意的改動或挪動、刪除這些CVSCVS目錄及其中目錄及其中的文件。的文件。 解釋解釋CVSCVS子目錄中的文件子目錄中的文件4343頁頁 留意:這里的test為用戶的目的目錄。根據(jù)用戶client端的配置:CVSROOT :pserver:public:/cvsap/src/master,命令cvs checkout test 從效力器的庫中,即將目錄/cvsap/src/master/test下的所以內(nèi)容包括子目錄檢出到客戶機(jī)的$HOME/test目錄下,同時生成目錄test。當(dāng)然,也可以檢出單個文件。diff命令 CVS能將他任務(wù)的拷貝中的源代碼文件
30、與倉庫中的版本進(jìn)展比較,發(fā)現(xiàn)差別。45頁如: your_client$ cvs diff test.c your_client$ cvs diff c test.c 該命令能看到對照的結(jié)果。應(yīng)該留意的是顯示內(nèi)容中的“+表示添加行,“!表示修正,其他的顯示內(nèi)容和UNIX系統(tǒng)中的diff命令顯示相仿。 your_client$ cvs diff r 1.1 r 2.1 test.c your_client$ cvs diff r 1.1 r 2.1 test.c 該命令比較庫中兩個不同版本文件差別。該命令比較庫中兩個不同版本文件差別。 commitcommit命令命令 提交操作會改動倉庫內(nèi)容。提交
31、之后,代碼成為整個提交操作會改動倉庫內(nèi)容。提交之后,代碼成為整個 系統(tǒng)的一個部分了。由于軟件的復(fù)雜性,需求對提交系統(tǒng)的一個部分了。由于軟件的復(fù)雜性,需求對提交進(jìn)展控制。所以在提交時該當(dāng)遵照一定的流程,進(jìn)展進(jìn)展控制。所以在提交時該當(dāng)遵照一定的流程,進(jìn)展一定的軟件質(zhì)量保證一定的軟件質(zhì)量保證SQASQA任務(wù),這些任務(wù)包括評審任務(wù),這些任務(wù)包括評審reviewreview、提交報告等。、提交報告等。 提交源代碼的命令為:提交源代碼的命令為: your_client$ cvs commit m “add string variable your_client$ cvs commit m “add str
32、ing variable and header string.hand header string.h test.ctest.c留意:假設(shè)輸出類似以下內(nèi)容的結(jié)果即提交失敗,此時留意:假設(shè)輸出類似以下內(nèi)容的結(jié)果即提交失敗,此時應(yīng)該用應(yīng)該用updateupdate命令更新個人任務(wù)目錄下的源代碼。命令更新個人任務(wù)目錄下的源代碼。 cvs commit:Up-to-date check failed for test.c cvs commit aborted:correct above errors first! 這里的“-m后面的是CVS注釋。CVS強(qiáng)迫要求用戶在任何一次提交、導(dǎo)入等操作時參與注釋。
33、養(yǎng)成注釋的習(xí)慣非常重要。 CVS支持中文注釋。假設(shè)不在命令行中參與注釋,那么CVS將自動啟動默許編輯器,請用戶輸入注釋,只需用戶保管注釋并退出這個編輯器之后,提交才干勝利。 update命令 該命令既可針對單個文件,也可針對一個目錄,或者整個工程。 更新單個文件 your_client$ cvs update test.c 執(zhí)行上述命令后,用戶當(dāng)前任務(wù)目錄中的文件test.c的內(nèi)容與倉庫中的最新版本完全一樣了,由于在他checkout該文件后,在修正該文件的過程中能夠他人曾經(jīng)修正并提交了該文件,即他的修正不是基于庫中最新版本。所以,他必需先update,再提交該文件才干提交勝利。不過能夠有沖突
34、要處理,緣由是對同一個文件的同一處代碼進(jìn)展了不同的修正。處理沖突的方法就是經(jīng)過編輯文件,修正發(fā)生沖突的部分。對于邏輯問題CVS無法發(fā)現(xiàn),所以版本沖突的處置應(yīng)該與軟件開發(fā)中的需求相結(jié)合。另外,可以經(jīng)過more命令看以下合并后的文件,如,more test.c。 更新整個工程 your_client$ cvs update 執(zhí)行上述命令后,用戶當(dāng)前任務(wù)拷貝中屬于本工程的一切文件與倉庫中的最新版本完全一樣了。需求留意其警告信息。 log命令 每次提交一個CVS操作時,必需填寫日志信息,否那么回絕提交。日志信息可以在命令行中加“-m參數(shù)表示。假設(shè)日志過長,可以不用“-m參數(shù)而直接運(yùn)轉(zhuǎn),CVS會彈出一個
35、編輯器,讓用戶在編輯器中輸入注釋信息。CVS對注釋信息沒有長度限制。這種日志信息是CVS進(jìn)展軟件變化跟蹤的一種機(jī)制。 每個版本均有日志信息。用戶可以查看某個文件的全部歷史日志記錄,也可以指定查看某個版本或某個日期的日志記錄。查看日志信息運(yùn)用命令:cvs log53頁 。 查看文件test.c全部日志,運(yùn)用命令: your_client$ cvs log test.c查看test.c文件1.2版本的日志,運(yùn)用命令: your_client$ cvs log r1.2 test.c 再如:cvs log d“2002-06-012002-07-01;2002-08-01 test.c your_c
36、lient$ cvs -Q update p r 1.2 test.c test.c該該命令不能在命令不能在windowswindows上執(zhí)行上執(zhí)行 上面命令假設(shè),現(xiàn)錯誤版本號為上面命令假設(shè),現(xiàn)錯誤版本號為1.31.3,正確版本號為,正確版本號為1.21.2。該命令中。該命令中“-Q-Q是不輸出無關(guān)的信息。留意不要執(zhí)行命令是不輸出無關(guān)的信息。留意不要執(zhí)行命令cvs update r cvs update r 1.2 test.c 1.2 test.c 這樣會出現(xiàn)問題。這樣會出現(xiàn)問題。 your_client$ cvs commit m “reverted to revision 1.2your
37、_client$ cvs commit m “reverted to revision 1.2 test.ctest.c cvs diff r 1.2 r 1.4 test.c cvs diff r 1.2 r 1.4 test.c 結(jié)果可以看出兩個版天性否一樣結(jié)果可以看出兩個版天性否一樣方法之二,用命令:方法之二,用命令: your_client$ cvs update j 1.3 j 1.2 test.c your_client$ cvs update j 1.3 j 1.2 test.c 將將1.31.3版本與版本與1.21.2版本之間的差別補(bǔ)到版本之間的差別補(bǔ)到1.31.3版本上去。版
38、本上去。 your_client$ cvs status test.c your_client$ cvs status test.c 查看查看checkoutcheckout出的出的1.31.3版本的形狀曾經(jīng)在本地修正版本的形狀曾經(jīng)在本地修正 your_client$ cvs commit m “reverted to revision 1.2your_client$ cvs commit m “reverted to revision 1.2 test.ctest.c your_client$ cvs diff r 1.2 test.c your_client$ cvs diff r 1.2
39、 test.c 在工程中添加新的目錄和文件命令:在工程中添加新的目錄和文件命令:addadd將任務(wù)目錄中新加的目錄和文件添加到將任務(wù)目錄中新加的目錄和文件添加到cvscvs庫中的方法:庫中的方法:在任務(wù)目錄中創(chuàng)建目錄和文件后才干進(jìn)展。在任務(wù)目錄中創(chuàng)建目錄和文件后才干進(jìn)展。加文件的第一步:加文件的第一步:your_client$ cvs add newfileyour_client$ cvs add newfile執(zhí)行第二步:執(zhí)行第二步:your_client$ cvs commit m “addedyour_client$ cvs commit m “added newfilenewfile加
40、目錄不論目錄能否為空目錄只需一步:your_client$ cvs add newder留意:目錄中的文件需求分別參與。刪除文件命令:remove必需先刪除任務(wù)目錄中的該文件,刪除前應(yīng)該將修正正的本文件提交保管,作為倉庫中的新版本。命令如下:第一步:your_client$ rm oldfile該命令不能在windows上執(zhí)行your_client$ cvs remove oldfile上兩步可以合并:your_client$ cvs remove f oldfile第二步:your_client$ cvs commit m “removed oldfile大家可以按步驟看一下任務(wù)目錄cvs目
41、錄下的Entries文件有什么變化。 對刪除的目錄對刪除的目錄 由于由于cvscvs不對目錄進(jìn)展版本控制,所以和刪除文件不同,不對目錄進(jìn)展版本控制,所以和刪除文件不同,沒有一個專門的命令。例如要刪除目錄沒有一個專門的命令。例如要刪除目錄olddirolddir: your_client$ ls -ayour_client$ ls -a olddir test.c test1.c test.pcolddir test.c test1.c test.pc your_client$ cd olddiryour_client$ cd olddir your_client$ ls a your_clie
42、nt$ ls a tmp.c tmp1.ctmp.c tmp1.c 以下是刪除目錄以下是刪除目錄olddirolddir的命令:的命令: your_client$ cvs remove f tmp.c tmp1.cyour_client$ cvs remove f tmp.c tmp1.c Your_client$cvs commit m “removedYour_client$cvs commit m “removed tmp.c tmp.c tmp1.ctmp1.c your_client$ cd .your_client$ cd . your_client$ cvs update Pyo
43、ur_client$ cvs update P your_client$ cvs updateyour_client$ cvs update一切空目錄均從任務(wù)目一切空目錄均從任務(wù)目錄中刪除錄中刪除 這時目錄這時目錄olddirolddir從任務(wù)目錄中消逝從任務(wù)目錄中消逝 留意:此命令不會將庫中新添加的目錄取到任務(wù)目錄留意:此命令不會將庫中新添加的目錄取到任務(wù)目錄中,可執(zhí)行命令:中,可執(zhí)行命令:your_client$ cvs update -dyour_client$ cvs update -d去除、刪除 文件和目錄名的更改文件和目錄名的更改 由于由于cvscvs對文件和目錄的更名缺乏支持,所
44、以必對文件和目錄的更名缺乏支持,所以必需中其他方法處置,該文件需中其他方法處置,該文件makefilemakefile名的方法一名的方法一為:為: your_client$ mv makefile makefile.mkyour_client$ mv makefile makefile.mk your_client$ cvs remove f makefileyour_client$ cvs remove f makefile your_client$ cvs commit m “removed for your_client$ cvs commit m “removed for renami
45、ngrenaming makefilemakefile your_client$ cvs add makefile.mkyour_client$ cvs add makefile.mk your_client$ cvs commit m “added as a your_client$ cvs commit m “added as a renamed version of makefilerenamed version of makefile makefile.mkmakefile.mk 方法二在效力器上直接操作:方法二在效力器上直接操作: rootcvshost /root$ cd root
46、cvshost /root$ cd /cvsap/src/master/test/cvsap/src/master/test rootcvshost /root$ mv makefile,v rootcvshost /root$ mv makefile,v makefile.mk,vmakefile.mk,v 這種改法的危險:確保沒人訪問該文件;不知道這種改法的危險:確保沒人訪問該文件;不知道什么時候執(zhí)行的修正;無法獲得文件在改名前的什么時候執(zhí)行的修正;無法獲得文件在改名前的舊版本。舊版本。改目錄名的方法也有兩種:方法一:在任務(wù)目錄中創(chuàng)建新目錄,將舊目錄下除cvs目錄外的一切文件和子目錄移到新
47、目錄下。然后刪除舊文件,在添加新目錄,并添加文件。your_client$ mkdir newdiryour_client$ mv oldnew/* newdiryour_client$cd olddiryour_client$ cvs remove f *your_client$ cvs update Pyour_client$ cvs update your_client$cd .your_client$cvs add newdir方法二: rootcvshost /root$ cd /cvsap/src/master/testrootcvshost /root$ mv olddir ne
48、wdir這種方法是制止任何人訪問數(shù)據(jù)庫,且方法危險,步主張運(yùn)用。1.5 測試環(huán)境測試環(huán)境進(jìn)入測試環(huán)境步驟進(jìn)入測試環(huán)境步驟: :在個人的在個人的pcpc機(jī)上啟動機(jī)上啟動linuxlinux或或windowswindows操作系操作系統(tǒng),配置好客戶端。在統(tǒng),配置好客戶端。在linuxlinux系統(tǒng)中也可以用系統(tǒng)中也可以用startxstartx進(jìn)入畫面操作系統(tǒng),而后用自帶的終進(jìn)入畫面操作系統(tǒng),而后用自帶的終端操作命令。在端操作命令。在windowswindows系統(tǒng)中直接啟動系統(tǒng)中直接啟動WinCVSWinCVS即可。即可。效力器的效力器的IPIP地址:地址:410.40.52
49、.64。效力器中。效力器中cvscvs用戶為用戶為du_cloud/du_clouddu_cloud/du_cloud管理用管理用戶戶,userabc/userabc,userabc/userabc為開發(fā)用戶。為開發(fā)用戶??梢园凑涨懊嬷v的命令去進(jìn)展練習(xí)??梢园凑涨懊嬷v的命令去進(jìn)展練習(xí)。1.6 CVS1.6 CVS的高級主題版本標(biāo)簽和版本分支的高級主題版本標(biāo)簽和版本分支.1版本版本 在配置管理的語境里,版本的概念應(yīng)該在配置管理的語境里,版本的概念應(yīng)該是是revisionrevision,而不是,而不是versionversion。 版本的編號可以系統(tǒng)本人編,也可以用版本的編號可以
50、系統(tǒng)本人編,也可以用戶自定義版本號。在系統(tǒng)本人編號時,戶自定義版本號。在系統(tǒng)本人編號時,假設(shè)工程中添加新文件,該文件不版本假設(shè)工程中添加新文件,該文件不版本號碼的第一位與本目錄下版本號碼最高號碼的第一位與本目錄下版本號碼最高的文件第一位一樣,第二位是的文件第一位一樣,第二位是1 1。如,一。如,一個目錄下有三個文件其版本號為個目錄下有三個文件其版本號為1.51.5、2.82.8、5.145.14,那么新添加的文件版本號應(yīng),那么新添加的文件版本號應(yīng)該是該是5.15.1。假設(shè)用戶本人給某個版本編號,。假設(shè)用戶本人給某個版本編號,那么這個版本編號必需大于工程中的一那么這個版本編號必需大于工程中的一切
51、文件的版本號。切文件的版本號。1.6.2 1.6.2 版本標(biāo)簽版本標(biāo)簽tagtag 版本標(biāo)簽是符號化的版本號碼,具有直版本標(biāo)簽是符號化的版本號碼,具有直觀、易于記憶和管理的優(yōu)點(diǎn)。用于階段觀、易于記憶和管理的優(yōu)點(diǎn)。用于階段式里程碑的版本標(biāo)志。是銜接工程式里程碑的版本標(biāo)志。是銜接工程中不同文件不同版本的手段。中不同文件不同版本的手段。 例子:經(jīng)過例子:經(jīng)過WinCVSWinCVS展現(xiàn)版本標(biāo)簽展現(xiàn)版本標(biāo)簽標(biāo)簽的設(shè)定標(biāo)簽的設(shè)定 Du_cloudlinux test$ cvs tag Du_cloudlinux test$ cvs tag rel_1_0_1 test.crel_1_0_1 test.c
52、留意:很少給單個文件設(shè)標(biāo)簽。留意:很少給單個文件設(shè)標(biāo)簽。給目錄下一切文件貼標(biāo)簽:給目錄下一切文件貼標(biāo)簽:Du_cloudlinux test$ cvs tag baseline_1Du_cloudlinux test$ cvs tag baseline_1標(biāo)簽的刪除、重命名和挪動標(biāo)簽的刪除、重命名和挪動刪除:刪除:Du_cloudlinux test$ cvs tag d baseline_1Du_cloudlinux test$ cvs tag d baseline_1重命名:重命名:Du_cloudlinux test$ cvs tag r baseline_1 baseline_2Du_
53、cloudlinux test$ cvs tag r baseline_1 baseline_2Du_cloudlinux test$ cvs tag d baseline_1Du_cloudlinux test$ cvs tag d baseline_1挪動:挪動:Du_cloudlinux test$ cvs tag r 1.6 F baseline_1 Du_cloudlinux test$ cvs tag r 1.6 F baseline_1 test.ctest.c我們將我們將test.ctest.c的標(biāo)簽從舊版本的標(biāo)簽從舊版本1.51.5移到新版本移到新版本1.61.6上。上。標(biāo)簽
54、的命名標(biāo)簽的命名baseline_1-20030623baseline_1-20030623Release-20030522Release-20030522Nightly-20030321Nightly-20030321等。等。標(biāo)簽的查看標(biāo)簽的查看 Du_cloudlinux test$ cvs status v test.cDu_cloudlinux test$ cvs status v test.c Du_cloudlinux test$ cvs status v Du_cloudlinux test$ cvs status v確定標(biāo)簽要貼的位置確定標(biāo)簽要貼的位置 Du_cloudlinu
55、x test$ cvs tag c baseline_1Du_cloudlinux test$ cvs tag c baseline_1貼標(biāo)簽時留意不要遺忘曾經(jīng)修正但沒有提交的文件。貼標(biāo)簽時留意不要遺忘曾經(jīng)修正但沒有提交的文件。按商定貼標(biāo)簽倉庫中直接給模塊加標(biāo)簽按商定貼標(biāo)簽倉庫中直接給模塊加標(biāo)簽 按日期貼標(biāo)簽下例是將模塊按日期貼標(biāo)簽下例是將模塊testtest的一切文件在的一切文件在2003062420030624號號0 0時時0 0分前提交的最后一個版本貼上標(biāo)簽:分前提交的最后一個版本貼上標(biāo)簽: Du_cloudlinux test$ cvs rtag D 20030624 Du_cloud
56、linux test$ cvs rtag D 20030624 nightly_20030624 testnightly_20030624 test 按版本號、曾經(jīng)有的標(biāo)簽貼新標(biāo)簽按版本號、曾經(jīng)有的標(biāo)簽貼新標(biāo)簽 Du_cloudlinux test$ cvs rtag r nightly_20030624Du_cloudlinux test$ cvs rtag r nightly_20030624老老tagtag rel_2_1 testrel_2_1 test貼新標(biāo)簽但貼新標(biāo)簽但testtest下新加程序不掛到標(biāo)下新加程序不掛到標(biāo)簽上簽上 Du_cloudlinux test$ cvs rt
57、ag f nightly_20030624 Du_cloudlinux test$ cvs rtag f nightly_20030624 testtest將將testtest下新加的程序的最新版本強(qiáng)迫的掛到下新加的程序的最新版本強(qiáng)迫的掛到nightly_20030624nightly_20030624上上 Du_cloudlinux test$ cvs rtag r 1.5 rel_2_1 testDu_cloudlinux test$ cvs rtag r 1.5 rel_2_1 test Du_cloudlinux test$ cvs rtag f 1.5 rel_2_1 test Du
58、_cloudlinux test$ cvs rtag f 1.5 rel_2_1 test 附著性標(biāo)簽附著性標(biāo)簽 1 1引起附著性標(biāo)簽的命令有:引起附著性標(biāo)簽的命令有: cvs update r tagcvs update r tag標(biāo)簽號標(biāo)簽號cvs update D datecvs update D date更新到不晚于更新到不晚于datedate的最新版本的最新版本cvs update r x.ycvs update r x.y版本號版本號 test.ctest.ccvs checkout r tagcvs checkout r tag標(biāo)簽號標(biāo)簽號cvs checkout D date
59、cvs checkout D date datedate之前最近的版本之前最近的版本cvs checkout r x.y test.ccvs checkout r x.y test.c2 2附著性標(biāo)簽在版本分支中的運(yùn)用:堅(jiān)持版本分支號與標(biāo)簽有直接附著性標(biāo)簽在版本分支中的運(yùn)用:堅(jiān)持版本分支號與標(biāo)簽有直接的關(guān)系,也就是標(biāo)簽附著在分支號上。的關(guān)系,也就是標(biāo)簽附著在分支號上。3 3堅(jiān)持某些文件的不改動:堅(jiān)持某些文件的不改動:只需對幾個文件執(zhí)行了只需對幾個文件執(zhí)行了cvs update r cvs update r 命令,如:命令,如:cvs update r cvs update r 1.28 ax.
60、c1.28 ax.c那么版本那么版本1.281.28就會成為附著性標(biāo)簽,以后執(zhí)行就會成為附著性標(biāo)簽,以后執(zhí)行cvs cvs update update 命令時這個文件不會更新,直到解除附著性為止。命令時這個文件不會更新,直到解除附著性為止。另外,還有另外,還有1 1中的命令情況一樣。中的命令情況一樣。4 4解除附著性標(biāo)簽:解除附著性標(biāo)簽:Du_cloudlinux test$ cvs update A test.cDu_cloudlinux test$ cvs update A test.c該命令解除附著性標(biāo)簽,將該命令解除附著性標(biāo)簽,將checkoutcheckout主干的最新版本并放本地。
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微整顧客協(xié)議書
- 住宅裝修設(shè)計(jì)協(xié)議
- 文化創(chuàng)意產(chǎn)業(yè)內(nèi)容創(chuàng)新與市場推廣方案
- 商業(yè)房產(chǎn)交易居間合同范本
- 提升客戶滿意度服務(wù)質(zhì)量方案
- 提高客戶服務(wù)質(zhì)量與滿意度的實(shí)施方案
- 產(chǎn)品設(shè)計(jì)與生產(chǎn)制造委托協(xié)議
- 研發(fā)立項(xiàng)報告
- 農(nóng)業(yè)產(chǎn)業(yè)化項(xiàng)目成本控制作業(yè)指導(dǎo)書
- 中國醫(yī)療器械行業(yè)發(fā)展報告
- 【公開課】同一直線上二力的合成+課件+2024-2025學(xué)年+人教版(2024)初中物理八年級下冊+
- 2023年擬任縣處級領(lǐng)導(dǎo)干部任職資格考試測試題
- 歐盟ELV(汽車)指令課件
- 2023年無錫職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試筆試題庫及答案解析
- sp病種針推新針推頸椎病
- 消防水泵和穩(wěn)壓泵安裝檢驗(yàn)批質(zhì)量驗(yàn)收記錄
- 500kV變電站工程構(gòu)支架吊裝專項(xiàng)施工方案
- 2021年上海臨港外服人力資源有限公司招聘筆試試題及答案解析
- 生物安全柜及應(yīng)用課件
- 酒店游泳池系統(tǒng)維保合同
- 現(xiàn)代商業(yè)空間展示設(shè)計(jì)ppt
評論
0/150
提交評論