第一部分 CVS服務器的配置(以1.10版) 1、 CVS簡述與CVS服務器的安裝: CVS是目前比較流行與優秀的版本管理與控制工具,它深受大多數開發人員與系統管理的喜愛,同時也是用來管理其它日常文檔(如Word工作文檔之類)的一個強有力的工具。這一部分將對CVS服務器的安裝、配置與使用方法進行簡單、扼要的介紹,以幫助大家盡快的使用CVS來進行一些版本的管理與控制工作。
2、 CVS服務器的安裝 CVS服務器版可以從網上的很多地方下載到,也可以到CVS的官方網站進行下載。根據你所使用的系統,下載相應的版本,然後進行安裝。因為當前大部分人是在Linux下使用CVS服務器進行版本管理,並且Redhat Linux是目前最流行的一個Linux發行版之一,所以本文將主要基於Redhat Linux進行介紹。首先下載CVS服務器的rpm包,當然也可以下載其它方式的包如源程序包,這也就是Linux的一個優點之一。然後采用以下命令進行安裝: rpm -ivh cvs-1.10.8-3.i386.rpm
3、配置/etc/services文件: 安裝完之後的第一件事就是要配置CVS服務器的配置文件,使其能正常的工作。首先在services文件中添加cvspserver,使其成為Linux的一種服務也就是cvs服務器例程的入口,配置如下: cvspserver 2401/tcp # cvs client/server operations cvspserver 2401/udp # cvs client/server operations
4、配置xinetd,用xinetd來啟動CVS服務器: 進入到/etc/xinetd.d/目錄,然後編輯一個文本文件,名字一定要與/etc/services中的入口名字cvspserver一致,所以這裡用cvspserver作為文件名,文件的內容如下所示: service cvspserver { disable = no socket_type = stream wait = no user = root env = HOME= server = /usr/bin/cvs server_args = -f --allow -root=/home/cvsroot pserver //指定認證方式為pserver,注意:-f } 注意:a、service後面的名稱一定要和你在/etc/service文件中的cvs服務名稱一樣; b、env = HOME=這一行的目的就是為了解決在執行一些cvs操作時產生的讀取/root/.cvsignore文件的錯誤,上面env那行的意思就是在運行cvs服務的時候將環境變量HOME置空,這樣雖然執行cvs的用戶是root,但是由於沒有了HOME這個環境變量,所以cvs就不會在去讀取/root/.cvsignore文件了。
5、配置CVS用戶與cvsroot的屬主與屬組: 首先建立一個用戶組cvs,可以使用groupadd或者addgroup命名,也可以直接編輯/etc/group文件添加這個組,然後添加一個用戶cvsroot, 然後修改/etc/passwd文件使cvsroot用戶的缺省組是cvs組,而不是cvsroot組(也就是修改)。在/home目錄下建立cvsroot目錄(也可以在其它你喜歡的目錄下建),然後修改/home/cvsroot的屬主及屬性: #chown cvsroot.cvs /home/cvsroot #chmod 771 /home/cvsroot
6、 vs進行初始化: 安裝完CVS服務器之後的另一件重要的事情就是要初始化CVS服務器的根目錄,以後創建的CVS項目都將建立在這個目錄下,采用的命令如下: #cvs -d /home/cvsroot init 這樣目錄/home/cvsroot就成為CVS服務器的根目錄,以後創建的目錄都將默認的存放在這個目錄下。
7、登錄cvs服務器(在Linux或其它Unix系統下進行登錄的情況): a、如果是遠程登錄,采用以下語法: #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:
[email protected]:/home/cvsroot這一句直 接寫在用戶的初始化文件中(如:.bash_profile),這樣用戶每次登錄時,只需輸入: #cvs login 然後輸入相應的口令就可以登錄到cvs服務器上。 b、如果是本地登錄,可以直接把export CVSROOT=/home/cvsroot這一句寫在用戶的初 始化文件如:.bash_profile中;然後直接
8、向CVS添加新的項目模塊 一般我們都已經有一個或多個項目了,這樣我們可以用下面步驟生成一個新的CVS項目。將一個工程文件置於CVs中進行版本控制,在CVS 術語中稱作導入(import)。從名字上就可以看出,在導入前需要為此作些准備工作。 輸入操作的基本要求是有個"干淨"的目錄結構。"干淨"的意思是不需要版本控制的文件都被移走了(如編譯生成的文件,備份文件等等)。如果工程已經開始一段時間了,這就顯得很重要。在目錄中也許有些是不打算將其置於版本控制下的文件,但是又想將他們放在這裡,這種情況下,你要在輸入之前將它們移走,然後再移回來。 注意的是CVS 認為空目錄是不存在的。如果想增加一個既不包含文件又不包含子目錄的目錄,需要在其下創建一個啞文件。建議你創建一個名為 README.txt 的文件,其內容為對目錄的簡要說明。 進入到已有項目的目錄,比如叫 cvstest: $cd cvstest 運行命令將項目文件導入到cvs倉庫中: $cvs import -m "this is a cvstest project" cvstest v_0_0_1 start 說明:import 是cvs的命令之一,表示向cvs倉庫輸入項目文件. -m參數後面的字串是描述文本,對項目進行描述,如果不加 -m 參數,那麼cvs會自動運行一個編輯器(一般是vi,但是可以通過修改環境變量EDITOR來改成你喜歡用的編輯器)讓你輸入信息,cvstest 是項目名稱(實際上是倉庫名,在CVS服務器上會存儲在以這個名字命名的倉庫裡) v_0_0_1是這個分支的總標記.沒啥用(或曰不常用) start 是每次 import 標識文件的輸入層次的標記,沒啥用。 這樣我們就在用戶指定進行初始化的目錄/home/cvsroot下建立了一個名字叫cvstest的CVS模塊了,然後,我們可以把這個測試項目的文件刪除,試驗如何從倉庫獲取文件這會在後面的客戶端文章進行說明。 (注:本小節主要引用自http://linuxaid.com.cn何偉平的“CVS服務器快速指南”)
9、從cvs本地服務器上checkout相應的模塊: a、如果是在CVS服務器所在計算機上,可以直接采用如下命令: #cvs checkout stw 這樣將把stw項目模塊checkout到當前目錄下。 b、如果是在遠程運行Linux或其它Unix系統上,在第7中登錄之後也可以用上邊的命 令把相應的項目模塊checkout到當前目錄下。 另外,如果是在windows端進行checkout,可以采用WinCVS,那麼還要對WinCVS進行其它的一些配置,下一部分將具體介紹它的配置方法。
第二部分 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->Preferences…,出現如下界面: 第一、 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,將出現如下對話框要求