大概是兩年前,我從我一個考研的朋友那里聽到關(guān)于cvs和版本控制這兩個詞,當時他還教了我怎樣在windows平臺下配置wincvs和cvsnt???
惜我當時并不在意這個,弄得現(xiàn)在配置這個東西花了我兩天的時間,值得安慰的是在參考了眾多網(wǎng)友的經(jīng)驗之后總算配置成功。為此把我的經(jīng)驗和教訓(xùn)貼出來以表示
對網(wǎng)友們的謝意(很抱歉的是當時只顧著看怎么配置沒有記下各位網(wǎng)友的名字,ps自己一下)和對自己的鼓勵。以后會把如何在開發(fā)過程中的使用貼出來。本文主
要參考資料是:
吳炎溪 Email:Yanxi-Wu@21cn.com的《cvs服務(wù)器與wincvs的配置與使用》,發(fā)在chinaunix上。
我配置時服務(wù)器是redhat linux 9,客戶端是windows xp和wincvs。這里假定讀者已經(jīng)安裝好了redhat linux
9和wincvs,如果不知道怎么安裝可以到網(wǎng)上搜一下。redhat linux
9的安裝我使用的完全安裝,就是把光盤里帶的所有東西都安裝上了。這樣的話所有的服務(wù)器和服務(wù)應(yīng)該都有了,為了偷懶我還把linux上的防火墻給關(guān)掉了,
我是內(nèi)部局域網(wǎng)使用,如果不是的話千萬不要把防火墻關(guān)了。(再ps自己一下)
一、linux下的cvs服務(wù)器配置
1、查看/etc/services文件:
首先要看看/etc/services這個文件,以確認cvs服務(wù)和端口已經(jīng)打開:
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations
2、配置xinetd,用xinetd來啟動cvs服務(wù)器:
進入到/etc/xinetd.d/目錄,在此目錄下編輯一個名字為cvspserver的文本文件,使用cvspserver作為文件名是因為在/etc/services中的入口名字是cvspserver。編輯如下:
service cvspserver
{
disable = no
protocol = tcp
socket_type = stream
port = 2401
wait = no
user = root
env = HOME=
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
}
注意:a、service后面的名稱一定要和你在/etc/service文件中的cvs服務(wù)名稱一樣;b、env = HOME=這一行的目的就是為了解決在執(zhí)行一些cvs操作時產(chǎn)生的讀取/root/.cvsignore文件的錯誤,上面env那行的意思就是在運行cvs服務(wù)的時候?qū)h(huán)境變量HOME置空,這樣雖然執(zhí)行cvs的用戶是root,但是由于沒有了HOME這個環(huán)境變量,所以cvs就不會在去讀取/root/.cvsignore文件了。
3、配置cvs用戶組和cvsroot用戶
首先建立一個用戶組cvs,記下cvs組ID。然后添加一個用戶cvsroot,然后修改/etc/passwd文件,把cvsroot用戶的組ID改為
剛才新建的cvs組的組ID。這樣在/home目錄下就會有一個/cvsroot目錄。修改/home/cvsroot的權(quán)限:#chomd 771
/home/cvsroot
4、對cvs進行初始化:
要使用cvs服務(wù)器首先要初始化cvs服務(wù)器的根目錄,這樣以后創(chuàng)建的cvs項目都將建立在這個目錄下:# cvs -d /home/cvsroot init
5、登錄cvs服務(wù)器(在linux下登錄):
#cvs -d :pserver:cvsroot@host:/home/cvsroot login
CVS password://輸入用戶cvsroot的口令;
如果沒有出現(xiàn)其它的任何提示就表示登錄成功了,否則要根據(jù)提示進行相應(yīng)的修改。 下面對登錄命令的語法進行說明:
其中,:pserver表示采用pserver方式進行用戶登錄認證,一般的CVS服務(wù)器都采用這
種方式,當然也可以采用其它方式,具體參考相應(yīng)的資料;
:cvsroot表示要登錄的用戶名,只要是cvs組的成員都可以,如:cather;
@host表示要登錄的服務(wù)器,可以是DNS名,也可以是IP地址,如:10.104.1.204;
:/home/cvsroot表示CVS在服務(wù)器上的目錄,也可以是其它目錄(由第6中你所
指定的用來做init初始化的目錄決定);
提示:也可以把export CVSROOT=":pserver:jchuang"@192.168.0.8:/home/cvsroot這一句直
接寫在用戶的初始化文件中(如:.bash_profile),這樣用戶每次登錄時,只需輸入:
#cvs login
然后輸入相應(yīng)的口令就可以登錄到cvs服務(wù)器上。
b、如果是本地登錄,可以直接把export CVSROOT="/home/cvsroot"這一句寫在用戶的初
始化文件如:.bash_profile中;然后直接輸入#cvs login,再輸入相應(yīng)的口令就可以登錄到cvs服務(wù)器上了。
二、WinCVS的配置
1、WinCVS簡介:
WinCVS是CVS的一個客戶端軟件,它運行在Windows上,用來在Windows上登錄CVS服務(wù)器,然后進行一些CVS相關(guān)的操作與管理。由于當前很多的企業(yè)內(nèi)部都采用Linux/Unix做服務(wù)器,而用Windows做客戶端,所以,WinCVS與CVS服務(wù)器配合使用將組成最強有力的版本控制與管理的系統(tǒng)之一。
2、WinCVS的下載與安裝;
最新的WinCVS可以從http://sourceforge.net/project/showfiles.php?group_id=10072地址下載到,也可以在http://sourceforge.net/project 上下載到最新的或其它版本的WinCVS。下載到相應(yīng)的版本后根據(jù)向?qū)нM行安裝,已經(jīng)要使用CVS的用戶,安裝這個WinCVS應(yīng)該沒什么問題吧!
3、配置WinCVS:
a、一般選項的設(shè)置,選擇Admin->references…,出現(xiàn)如下界面:
第一、Authentication:用來配置cvs服務(wù)器的認證方式,可以從下拉框中選擇其它的認證方式,不過一般只要選擇默認的pserver方式就可以,要注意的是必須與cvs服務(wù)器配置時所指定的認證方式一致;
第二、Path:用來配置cvs在服務(wù)器上的主目錄路徑,也就是服務(wù)器上用進行cvs初始化的目錄,如:/home/cvsroot;
第三、Host Address:用來配置cvs服務(wù)器所在服務(wù)器的地址,可以是IP地址,也可以是DNS名,如:10.104.1.204;
第四、User name:用來配置要使用些WinCVS來登錄CVS服務(wù)器的用戶名,如:cvsyxwu,用戶的登錄必須由管理員把其添加cvs用戶組中;
第五、CVSROOT:此項一般都不需要用戶進行修改,用戶在輸入上邊的幾個選項時,系統(tǒng)將自動根據(jù)用戶的輸入生成此項的相應(yīng)內(nèi)容。
b、全局選項的設(shè)置,在上一個界面上選擇“Globals”:
此項的配置主要是要注意這幾選項:
第一,Checkout read-only不要選上,否則,checkout出來的源代碼將不允許用戶進行
修改,并且此選項默認是選中的;
第二,Prune (remove) empty directories也不要選上,否則,會自動刪除空目錄;
第三,對一般配置沒有特殊要求的,把Dirty files support、Supply control when adding
與TCP/IP compression選項選中;
4、登錄服務(wù)器:
選擇Admin->;login,將出現(xiàn)如下對話框要求用戶輸入登錄口令
輸入口令后,選擇“OK”按鈕,如果CVS服務(wù)器與WinCVS的配置都沒出錯的話,將在CVS的狀態(tài)欄中提示:
cvs -z9 -d :pserver:cvsyxwu@10.104.1.204:/home/cvsroot login
Logging in to :pserver:cvsyxwu@10.104.1.204:2401/home/cvsroot
***** CVS exited normally with code 0 *****
code 0表示正確的登錄;而如果出錯的話,將是code 1,那么要根據(jù)錯誤的提示進行相應(yīng)的修改。