網(wǎng)絡(luò)消費(fèi)網(wǎng) >  5G > > 正文
CVS系統(tǒng)簡(jiǎn)介
時(shí)間:2022-01-23 06:22:03

CVS系統(tǒng)簡(jiǎn)介

一、什么是CVS?CVS ――Concurrent Versions System并行版本系統(tǒng); 是一個(gè)標(biāo)準(zhǔn)的版本控制系統(tǒng); 對(duì)代碼進(jìn)行集中管理; 記錄代碼所有的更改歷史; 提供協(xié)作開(kāi)發(fā)的功能; 支持多人同時(shí)CheckOut與合并。 以客戶端/服務(wù)器模式工作,所有的用戶都在客戶端進(jìn)行CVS操作,而所有命令的執(zhí)行都在CVS服務(wù)器端進(jìn)行。 二、CVS基本概念CVS倉(cāng)庫(kù):又稱主拷貝,是CVS系統(tǒng)保存軟件資源的地方。所有項(xiàng)目的所有文件的所有版本都保存在這個(gè)倉(cāng)庫(kù)中。 版本:開(kāi)發(fā)人員每次向CVS提交所做的修改就形成了一個(gè)新版本。 工作拷貝:從CVS服務(wù)器端取出的,保存在我們正在使用的客戶端計(jì)算機(jī)上的代碼拷貝。每個(gè)人員都有一個(gè)屬于自己的工作拷貝。 檢出代碼(創(chuàng)建工作拷貝check out):從服務(wù)器取出代碼,就是創(chuàng)建工作拷貝的過(guò)程。 提交代碼(commit):將代碼送到服務(wù)器保存,commit又叫作check in。 導(dǎo)入代碼(import):將未被CVS進(jìn)行版本管理的代碼引入CVS系統(tǒng)中,由CVS開(kāi)始對(duì)它進(jìn)行版本管理。 CVS日志:CVS用來(lái)記錄每次操作的內(nèi)容的信息。日志信息可以用cvs log命令來(lái)查看。 更新(update):在協(xié)同開(kāi)發(fā)環(huán)境下,將其他人所作的最新修改從CVS倉(cāng)庫(kù)中取到你的工作拷貝中,從而使得你得工作拷貝與倉(cāng)庫(kù)中得最新版本保持一致。使用update是同步各個(gè)工作拷貝的手段。 沖突(conflict):在協(xié)同開(kāi)發(fā)的環(huán)境下,當(dāng)兩個(gè)開(kāi)發(fā)人員對(duì)同一個(gè)文件進(jìn)行修改,并且依次提交CVS倉(cāng)庫(kù)時(shí)就發(fā)生了沖突。這種沖突需要開(kāi)發(fā)人員手工消除,并提交到CVS倉(cāng)庫(kù)中形成解除沖突之后的新版本。

三、CVS命令:1. 設(shè)置環(huán)境變量。 set CVSROOT=:pserver:xxx@192.168.0.226:e:/cvsroot set CVSROOT=:pserver:xxx@ansi.3322.org:e:/cvsroot 2.簽出工作版本到工作目錄。 $cd $cvs co account/src/common 該命令只將account/src/common目錄結(jié)構(gòu)簽出到本地。若使用 $cvs co account 則將account下所有目錄結(jié)構(gòu)簽出來(lái)。 3. 提交修改的文件到CVS版本庫(kù)中: $cvs ci filename> 注意若提交多個(gè)文件可以輸入多個(gè)文件名,并以空格分開(kāi)。若將該目錄下所有文件都提交,那么只需 $cvs ci 回車> 即可。 4. 提交新增加的目錄或文件到CVS版本庫(kù)中: $cvs add dirname> $cvs ci dirname> $cvs add filename> $cvs ci filename> 5. 刪除目錄及文件,需先刪除目錄下的文件 $rm filename> $cvs remove filename> $cvs ci filename> 再執(zhí)行 $cd .. $cvs up –P 則將該空目錄刪除(只是刪除本地工作拷貝的空目錄)。 6. 查看文件狀態(tài) $cvs status filename> 例如: $ cvs st ffun.c ================================================================= File: ffun.c Status: Up-to-date Working revision: 1.1 Wed Nov 6 11:29:04 2002 Repository revision: 1.1 /szunicom/dev/billing/src/preproc/CDMA/ffun.c,v Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none) 注意:最重要的是Status欄,可以有以下幾種狀態(tài): Up-to-date :表明你的工作拷貝是最新的. Locally Modified:表明你曾經(jīng)修改過(guò)該文件,但還沒(méi)有提交,你的版本比倉(cāng)庫(kù)里的新. Needing Patch:表明有人已經(jīng)修改過(guò)該文件并且已經(jīng)提交了!你沒(méi)有修改但你的工作拷貝的版本比倉(cāng)庫(kù)里的舊. Needs Merge:表明你修改了該文件但沒(méi)有提交,而有人也修改了這個(gè)文件,并且提交給倉(cāng)庫(kù)了。 Locally added :表明使用了add命令增加了該文件,但還沒(méi)有commit Locally Removed :表明你使用了remove命令,但還沒(méi)有commit Unkown :CVS不知道關(guān)于這個(gè)文件的情況.例如,你創(chuàng)建了一個(gè)新文件,而沒(méi)有使用add命令 解決辦法: 若狀態(tài)為L(zhǎng)ocally Modified,則需執(zhí)行$cvs ci filename> 若狀態(tài)為Needing Patch或Needing Merge,則需執(zhí)行$cvs up filename> 將版本庫(kù)里的文件與工作拷貝合并后,再提交給版本庫(kù),使用命令: $cvs ci filename> 。 若狀態(tài)為:Locallyadded,則需執(zhí)行$cvs ci filename> 若狀態(tài)為:Removed,則需執(zhí)行$cvs ci filename> 若狀態(tài)為:Unkown,則需執(zhí)行$cvs add filename>,$cvs ci filename>。 7. 查看工作拷貝和倉(cāng)庫(kù)中最后版本之間的修改 $ cvs diff src.c 8. 查看指定的兩個(gè)版本之間的修改 $ cvs diff -r 1.1 -r 1.2 filename> 9. 版本回退(取出以前的某個(gè)版本) 有兩種方式: 一是只把某一版本的文件輸出到標(biāo)準(zhǔn)輸出上: $cvs up –p –r 版本號(hào)> filename> “-p”選項(xiàng)讓CVS命令的結(jié)果只輸出到標(biāo)準(zhǔn)輸出,而不寫入到結(jié)果文件中。 另一種是將輸出到標(biāo)準(zhǔn)輸出的結(jié)果重定向到文件中: $cvs up –p –r 版本號(hào)> filename> > filename> 如:目前abc.c文件的版本號(hào)為1.5,要取出1.2的版本,那么執(zhí)行 $cvs up –p –r 1.2 abc.c > abc.c 若沒(méi)有使用“-p”選項(xiàng)進(jìn)行回退,而是使用了$cvs up –r 1.2 abc.c命令,之后若對(duì)1.2版本進(jìn)行修改后再提交到CVS時(shí),會(huì)出現(xiàn)如下提示信息: cvs ci cvs commit: Examining . cvs commit: sticky tag `1.2" for file `abc.c" is not a branch cvs [commit aborted]: correct above errors first! 解決辦法兩種方式: 1 、修改CVS/Entries文件,將以下黃色標(biāo)記部分刪除即可。 $cd CVS $ vi E* /abc.c/1.2/Tue Dec 17 13:33:06 2002//T1.2 D ~ ~ 2、使用$cvs up –A abc.c命令來(lái)消除附著標(biāo)簽,但是該命令是將1.2版本與最新版本進(jìn)行了合并,還需對(duì)abc.c進(jìn)行修改再重新提交。 10. 如何恢復(fù)已經(jīng)刪除的文件或目錄: 1. 在執(zhí)行了【Remove】命令之后恢復(fù)文件。 ◇ 【Ctrl+L】直接輸入命令cvs add xxxxx,或執(zhí)行【Add Selection】界面操作。 ◇ 這樣就可以直接恢復(fù)還未提交的刪除文件。 2. 在執(zhí)行了【Commit】命令之后恢復(fù)文件。 ◇ 只能用【Ctrl+L】直接輸入命令cvs add xxxxx,這時(shí)會(huì)得到一個(gè)空的文件。 ◇ 選中這個(gè)空文件,執(zhí)行【Update】操作,得到這個(gè)文件的實(shí)體。 ◇ 再次選中這個(gè)文件,執(zhí)行【Commit】操作,得到這個(gè)文件最新版本。 3. 由于CVS系統(tǒng)中本質(zhì)上不會(huì)刪除任何目錄,因此,談不上對(duì)目錄的恢復(fù),但是CVS系統(tǒng)默認(rèn)情況下是要在用戶本機(jī)上(如:YCW2000)要?jiǎng)h除空目錄,因此,可以用如下方法得到已被刪除的空目錄:cvs checkout -p xxx,也可以在Admin=>Preference的【Globals】頁(yè)面進(jìn)行設(shè)置。

關(guān)鍵詞: 電子技術(shù) 半導(dǎo)體集成電路 電子工程師 互動(dòng)交流

版權(quán)聲明:
    凡注明來(lái)網(wǎng)絡(luò)消費(fèi)網(wǎng)的作品,版權(quán)均屬網(wǎng)絡(luò)消費(fèi)網(wǎng)所有,未經(jīng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明"來(lái)源:網(wǎng)絡(luò)消費(fèi)網(wǎng)"。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
    除來(lái)源署名為網(wǎng)絡(luò)消費(fèi)網(wǎng)稿件外,其他所轉(zhuǎn)載內(nèi)容之原創(chuàng)性、真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考并自行核實(shí)。
熱文

網(wǎng)站首頁(yè) |網(wǎng)站簡(jiǎn)介 | 關(guān)于我們 | 廣告業(yè)務(wù) | 投稿信箱
 

Copyright © 2000-2020 m.netfop.cn All Rights Reserved.
 

中國(guó)網(wǎng)絡(luò)消費(fèi)網(wǎng) 版權(quán)所有 未經(jīng)書面授權(quán) 不得復(fù)制或建立鏡像
 

聯(lián)系郵箱:920 891 263@qq.com

備案號(hào):京ICP備2022016840號(hào)-15

營(yíng)業(yè)執(zhí)照公示信息