您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
cvs服務(wù)器的詳細(xì)教程
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 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)行翻譯工作了,建一個目錄,叫什么呢,叫worktmp吧。
我們進(jìn)到此目錄下,執(zhí)行命令cvs checkout cn,我們將會看到如下的信息: cvs checkout: Updating ......CVS在當(dāng)前目錄下建立一個叫做cn的目錄,我們服務(wù)器上的文件都在這個目錄下出現(xiàn)了,而且還多了一個名為CVS的目錄。目錄CVS下面存放的是一些文本文件,記錄了CVSROOT的位置、此項目對應(yīng)源碼庫中那個目錄等一些信息。 保存修改到CVS中

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

3.從項目中刪除文件
除了添加以外,我們有的時候可能需要刪除某個文件,例如我們發(fā)現(xiàn)文件c.xml其實沒有什么用。于是,我們執(zhí)行下面幾個命令來完成刪除工作:
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è)定特定版本號
經(jīng)過一段時間的工作,程序已經(jīng)初具規(guī)模,形成了較穩(wěn)定的版本。這個時候,a.xml可能已經(jīng)是5.4版本,而b.xml可能是3.5版本,而我們希望將當(dāng)前的代碼作一個版本發(fā)布。此時,我們需要使用的是tag命令。這個命令賦予指定的一個或多個文件一個給定的文本形式的版本號。版本號必須以字母開始,可以包含數(shù)字、下劃線和連接符號(-)。我們想給當(dāng)前項目的所有文件賦予相同的版本號時,可以不指定文件或路徑參數(shù),CVS默認(rèn)選擇當(dāng)前目錄下所有在CVS中注冊的文件(循環(huán)進(jìn)子目錄)。
下面既是一個例子:
鍵入命令:
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)前版本的所有文件都有了一個叫做release0-1的版本代號。當(dāng)我們需要這個版本的時候,我們使用 -r (版本代號)參數(shù)來得到指定的版本。例如命令:   cvs checkout -r release0-1 gentoo   將在當(dāng)前目錄下建立gentoo目錄,并導(dǎo)出所有版本代號為release0-1的文件。
5 更新當(dāng)前工作目錄中的文件
這里使用的命令為update,它將比較指定的在CVS源碼庫中的文件和當(dāng)前目錄下的文件,如果CVS源碼庫中有更高版本的源文件,則更新當(dāng)前目錄下的文件。這個功能主要是多人協(xié)作開發(fā)項目時使用的,讓你及時分享同伴的工作成果。但它另外一個重要的用途,同樣適用于單人開發(fā)的項目。這個用途需要使用- j參數(shù),我們看下面的例子:   cvs update -j 1.5 -j 1.3 index.xml   
這個命令的功能是,在當(dāng)前目錄的index.xml文件中,忽略從版本1.3到版本1.5所作的修改。毫無疑問,對個人來說,這是一個非常重要的功能。因為在某個階段我們對程序所作的修改在現(xiàn)在可能會被視為是無效乃至錯誤的,這個功能很好的解決了這個問題。
在更新的過程中,CVS執(zhí)行一個自動合并的過程。例如我們的工作目錄中的test.c文件版本是2.1,并且我們已經(jīng)對此文件作了一番修改,而 CVS源碼庫中的是版本2.2,此時我們執(zhí)行update命令時,CVS并不是簡單的將版本2.2覆蓋版本2.1,而是試圖將自版本2.1到版本2.2的修改添加到當(dāng)前目錄中的文件中去,如果它和我們剛剛所作的修改有沖突,則CVS會以字符串"<<<<<"和"> >>>>"表示由沖突發(fā)生,期待用戶去修改。CVS拒絕接受包含有上述特定字符串的文件。下面即是一個沖突的例子: test.c: 版本號 2.2,保存在CVS中 …… getPartFile( ); showFinished(); return(A); } ……

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

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

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

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