您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源配置管理工具 > cvs
cvs服務(wù)器的詳細(xì)教程
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/21 15:03:10 ] 推薦標(biāo)簽:

1.首先我們定義一下環(huán)境變量
export CVS_RSH=ssh
export CVSROOT=:ext:Eong@cvs.cosoft.org.cn:/sfroot/cvs/gentoochina
其中Eong是我的用戶名,你應(yīng)該替換成你自己的。
我們要進(jìn)行翻譯工作了,建一個(gè)目錄,叫什么呢,叫worktmp吧。
我們進(jìn)到此目錄下,執(zhí)行命令cvs checkout cn,我們將會(huì)看到如下的信息: cvs checkout: Updating ......CVS在當(dāng)前目錄下建立一個(gè)叫做cn的目錄,我們服務(wù)器上的文件都在這個(gè)目錄下出現(xiàn)了,而且還多了一個(gè)名為CVS的目錄。目錄CVS下面存放的是一些文本文件,記錄了CVSROOT的位置、此項(xiàng)目對(duì)應(yīng)源碼庫(kù)中那個(gè)目錄等一些信息。 保存修改到CVS中

2.現(xiàn)在,我們開(kāi)始艱苦卓越的翻譯工作。經(jīng)過(guò)數(shù)十分鐘、數(shù)小時(shí)乃至數(shù)天的工作,我們基本完成了翻譯,現(xiàn)在要告一段落了。我們將修改的內(nèi)容提交給CVS。
于是,我們需要執(zhí)行命令
cvs commit -m "Made some useful changes on some files"
這時(shí),我們將會(huì)看到CVS給出一些提示信息,它掃描并比較此目錄下的現(xiàn)有文件和它在源碼庫(kù)中保存的原有文件,做了修改的文件將被更新,并且有了新的版本號(hào):1.2。-m參數(shù)如同前面所說(shuō),是為了不想它啟動(dòng)一個(gè)文本編輯器來(lái)讓自己輸入。如果我們僅是修改了其中一兩個(gè)文件,我們可以在上面的命令的后附上文件名,這樣CVS只會(huì)比較、更新指定的文件。注意的是,和自己做備份不同,CVS只是保存了不同版本之間的差異,并沒(méi)有完整的保存各個(gè)版本,F(xiàn)在,你是不是覺(jué)得CVS有點(diǎn)用處了。 3.5 添加文件到項(xiàng)目中  有,我們需要在原有的項(xiàng)目里添加兩個(gè)文件:a.xml和b.xml。首先,我們?cè)诠ぷ髂夸浵陆⒉⒕庉嫛⑿薷、生成了這兩個(gè)文件,注意,一定是對(duì)應(yīng)的工作目錄,你也可以翻譯好了再copy到工作目錄相應(yīng)位置。然后我們進(jìn)入文件所在的目錄,使用命令add命令來(lái)添加。
cvs add a.xml b.xml
此時(shí),文件并沒(méi)有真正的被添加,只是相當(dāng)于"注冊(cè)"了一下,要使這個(gè)過(guò)程生效,我們?nèi)匀恍枰褂胏ommit命令:
cvs commit a.xml b.xml -m "Add two files"
此時(shí),CVS將把這兩個(gè)文件添加到項(xiàng)目中去,他們的版本均為初始的1.1。

3.從項(xiàng)目中刪除文件
除了添加以外,我們有的時(shí)候可能需要?jiǎng)h除某個(gè)文件,例如我們發(fā)現(xiàn)文件c.xml其實(shí)沒(méi)有什么用。于是,我們執(zhí)行下面幾個(gè)命令來(lái)完成刪除工作:
rm c.xml
/*刪除本地文件*/
cvs remove c.xml
/*刪除服務(wù)器上的文件*/
cvs commit c.xml -m "Delete a file."
/*確認(rèn)刪除×/
要注意的是,CVS只是刪除了當(dāng)前版本的c.xml,它以前的版本依然存在,除非它恰好僅有1.1版本。

4 設(shè)定特定版本號(hào)
經(jīng)過(guò)一段時(shí)間的工作,程序已經(jīng)初具規(guī)模,形成了較穩(wěn)定的版本。這個(gè)時(shí)候,a.xml可能已經(jīng)是5.4版本,而b.xml可能是3.5版本,而我們希望將當(dāng)前的代碼作一個(gè)版本發(fā)布。此時(shí),我們需要使用的是tag命令。這個(gè)命令賦予指定的一個(gè)或多個(gè)文件一個(gè)給定的文本形式的版本號(hào)。版本號(hào)必須以字母開(kāi)始,可以包含數(shù)字、下劃線和連接符號(hào)(-)。我們想給當(dāng)前項(xiàng)目的所有文件賦予相同的版本號(hào)時(shí),可以不指定文件或路徑參數(shù),CVS默認(rèn)選擇當(dāng)前目錄下所有在CVS中注冊(cè)的文件(循環(huán)進(jìn)子目錄)。
下面既是一個(gè)例子:
鍵入命令:
cvs tag release0-1   

提示信息:     cvs tag: Tagging .      T Makefile      T a.xml      T b.xml      T c.xml      T d.xml     T e.xml

這樣當(dāng)前版本的所有文件都有了一個(gè)叫做release0-1的版本代號(hào)。當(dāng)我們需要這個(gè)版本的時(shí)候,我們使用 -r (版本代號(hào))參數(shù)來(lái)得到指定的版本。例如命令:   cvs checkout -r release0-1 gentoo   將在當(dāng)前目錄下建立gentoo目錄,并導(dǎo)出所有版本代號(hào)為release0-1的文件。
5 更新當(dāng)前工作目錄中的文件
這里使用的命令為update,它將比較指定的在CVS源碼庫(kù)中的文件和當(dāng)前目錄下的文件,如果CVS源碼庫(kù)中有更高版本的源文件,則更新當(dāng)前目錄下的文件。這個(gè)功能主要是多人協(xié)作開(kāi)發(fā)項(xiàng)目時(shí)使用的,讓你及時(shí)分享同伴的工作成果。但它另外一個(gè)重要的用途,同樣適用于單人開(kāi)發(fā)的項(xiàng)目。這個(gè)用途需要使用- j參數(shù),我們看下面的例子:   cvs update -j 1.5 -j 1.3 index.xml   
這個(gè)命令的功能是,在當(dāng)前目錄的index.xml文件中,忽略從版本1.3到版本1.5所作的修改。毫無(wú)疑問(wèn),對(duì)個(gè)人來(lái)說(shuō),這是一個(gè)非常重要的功能。因?yàn)樵谀硞(gè)階段我們對(duì)程序所作的修改在現(xiàn)在可能會(huì)被視為是無(wú)效乃至錯(cuò)誤的,這個(gè)功能很好的解決了這個(gè)問(wèn)題。
在更新的過(guò)程中,CVS執(zhí)行一個(gè)自動(dòng)合并的過(guò)程。例如我們的工作目錄中的test.c文件版本是2.1,并且我們已經(jīng)對(duì)此文件作了一番修改,而 CVS源碼庫(kù)中的是版本2.2,此時(shí)我們執(zhí)行update命令時(shí),CVS并不是簡(jiǎn)單的將版本2.2覆蓋版本2.1,而是試圖將自版本2.1到版本2.2的修改添加到當(dāng)前目錄中的文件中去,如果它和我們剛剛所作的修改有沖突,則CVS會(huì)以字符串"<<<<<"和"> >>>>"表示由沖突發(fā)生,期待用戶去修改。CVS拒絕接受包含有上述特定字符串的文件。下面即是一個(gè)沖突的例子: test.c: 版本號(hào) 2.2,保存在CVS中 …… getPartFile( ); showFinished(); return(A); } ……

test.c: 版本號(hào)2.1 經(jīng)過(guò)我們的修改 …… getPartFile( ); return(B); } …… 我們執(zhí)行命令cvs update test.c后,將會(huì)包含如下內(nèi)容的新的test.c:

…… getPartFile( ); showFinished(); <<<<<<< test.c return(B); ========== return(A); >>>>>>> 2.2 } ……   除非我們做出修改并刪去"<<<<<<<"、"======="和">>>> >>>",否則在執(zhí)行cvs commit的時(shí)候,test.c 將不會(huì)更新原有的2.2版本。
5.CVS的其他功能 CVS當(dāng)然遠(yuǎn)不止上面所說(shuō)的這些內(nèi)容,這些僅是CVS的基本功能,CVS還有許多重要的功能,如上面所說(shuō)的網(wǎng)絡(luò)工作方式、支持二進(jìn)制文件等。

其它的我不多說(shuō)了。上面這些應(yīng)該足夠讓大家懂得CVS的基本使用了。大家?guī)兔涌旆g速度吧,據(jù)wolf所說(shuō)handbook翻譯完成,能在官方主頁(yè)上有連接了。
英文原檔這里有下載:www.gentoo.org/dyn/doc-snapshots/docs-latest-en.tar.bz2
CVS倉(cāng)庫(kù)地址:
http://cvs.cosoft.org.cn/cgi-bin/vi...cgi/gentoochina
翻譯模塊是cn,也是根目錄下的cn文件夾。
CVS服務(wù)器上沒(méi)有的你可以加上去,有的你可以修改翻譯。過(guò)時(shí)的文件可以刪除,不過(guò)請(qǐng)慎重,畢竟是勞動(dòng)成果。

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd