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