搭建CVS伺服器和用戶端

來源:互聯網
上載者:User

一、CVS入門知識詳解

1、什麼是 CVS?

CVS 是一種客戶機/伺服器系統,類似於microsoft SourceSafe,可以讓開發人員將他們的項目儲存在稱為資產庫的中央位置。使用 cvs 客戶機工具,開發人員可以對資產庫的內容變更。CVS 資產庫會依次記錄對每個檔案所做的每個更改,並建立一個完整的項目開發進展曆史。開發人員可以請求特定源檔案的舊版本、查看變更記錄檔,並根據需要執行其它 一些有用的任務。所有重要的免費軟體項目都使用 CVS 作為其程式員之間的中心點,以便能夠綜合各程式員的改進和更改。這些項目包括: Gnome, KDE, The GIMP, Wine, 等等。

CVS 的基本工作思路是這樣的:在一台伺服器上建立一個倉庫,倉庫裡可以存放許多不同項目的來源程式。由倉庫管理員統一管理這些來源程式.這樣,就好象只有一個人在 修改檔案一樣.避免了衝突.每個使用者在使用倉庫之前,首先要把倉庫裡的專案檔下載到本地。使用者做的任何修改首先都是在本地進行,然後用 cvs 命令進行提交,由 cvs 倉庫管理員統一 修改.這樣就可以做到追蹤檔案變化,衝突控制等等.

CVS可以協助一組人共同開發一個工程。如果你是一個項目中的一群組成員之一,CVS也能夠協助你。除非你特別仔細,你很容易覆蓋其他人的工作。一些編輯 器,例如GNUEmacs,試圖去判定一個檔案是否被兩人同時修改。不幸的是,如果一個人使用其它的編輯器時,這個安全方式將不再有效。CVS使用讓不同 開發人員獨立工作的方式解決了這個問題。每一個開發人員的工作都在他自己的目錄內,並且CVS將 在每個開發人員的工作完成後進行合并工作。

由於 CVS 是典型的 C/S 結構的軟體,因此它也分成伺服器端和用戶端兩部分。不過大多數CVS 軟體都把它們合二為一了。我們這裡就分別從伺服器和用戶端的角度討論cvs的使用。

2、CVS基本概念

Repository(倉庫)
CVS的倉庫儲存全部的版本控制下的檔案copy,通常不容許直接存取,只能通過cvs命令,獲得一份本地copy,改動後再check in(commit)回倉庫。而倉庫通常為與工作目錄分離的。CVS通過多種方式訪問倉庫。每種方法有不同目錄表示形式。資料如何存放在 repository中:隨著CVS版本的不同,存放結構會發生變化,一般情況下使用者無需瞭解資料到底是如何存放的。

Revision(修訂版)
每一個file的各個revision都不相同,形如1.1, 1.2.1,一般1.1是該檔案的第一個revision,後面的一個將自動增加最右面的一個整數,比如1.2, 1.3, 1.4…有時候會出現1.3.2.2,原因見後。revision總是偶數個數字。一般情況下將revision看作時CVS自己內部的一個編號,而 tag則可以標誌使用者的特定資訊。

Tag(標籤)
用符號化的表示方法標誌檔案特定revision的資訊。通常不需要對某一個孤立的檔案作tag,而是對所有檔案同時作一個tag,以後使用者可以僅向特定 tag的檔案提交或者checkout。另外一個作用是在發布軟體的時候表示哪些檔案及其哪個版本是可用的;各檔案不同revision可以包括在一個 tag中。如果命名一個已存在的tag預設將不會覆蓋原來的;

Branch(分支)
當使用者修改一個branch時不會對另外的branch產生任何影響。可以在適當的時候通過合并的方法將兩個版本合起來;branch總是在當前 revision後面加上一個偶數整數(從2開始,到0結束),所以branch總是奇數個數字,比如1.2後面branch為1.2.2,該分支下 revision可能為1.2.2.1,1.2.2.2,…

Conflict(衝突)
完全是純文字的衝突,不包含邏輯上的矛盾,比如CVS不能解決如下問題:某人修改了函數f的參數,而另外一個人在另外一個地方用老的參數調用該函數。文本 衝突需要使用者自己參與解決,CVS無法自動解決。(如還有不明之處,請聯絡飄揚,你可以到我的部落格(飄揚部落格)http: //www.piaoyang.org 給我留言或QQ47720194,我會儘力解答你的問題。)

Module(模組):CVS伺服器根目錄下的第一級子目錄。通常用於存放一個項目的所有檔案
Check out(檢出):通常指將倉庫中的一整個模組首次匯出到本地。
Check in(匯入)::通常指通過提交整個目錄結構並建立一個新的模組。
Release(發行版本):整個產品的版本
Update(更新):從模組中下載其他人的修改過的檔案。更新本地的拷貝。
Commit(提交):將自己修改過的檔案提交到模組中。

三、Windows下CVS伺服器與用戶端的配置

1、windows下CVS伺服器的配置
在此,我們以WinCVS為例來介紹。WinCVS顧名思義,是用在windows上的,它是一款相當不錯的基於Windows的CVS用戶端軟體。安裝 時沒有什麼特別的地方,與普通的Windows軟體相同,一路next就OK了。(最新的WinCVS可以從http: //sourceforge.net/project/showfiles.php?group_id=10072地址下載到,也可以在http: //sourceforge.net/project 上下載到最新的或其它版本的WinCVS。)由於是軟體介面配置,所以針對介面選項填入相應的參數即可,在此不再贅述。

2、windows下CVS用戶端的配置
同樣我們以WinCVS為例來介紹。安裝這個WinCVS不用再囉嗦一遍了吧,跳過,來看配置過程!

2.1 配置WinCVS
選擇Admin->Preferences…,在出現的介面上進行一般選項的設定:
1) Authentication:用來配置cvs伺服器的認證方式,可以從下拉框中選擇其它的認證方式,不過一般只要選擇預設的pserver方式就可以,要注意的是必須與cvs伺服器配置時所指定的認證方式一致;
2) Path:用來配置cvs在伺服器上的主目錄路徑,也就是伺服器上用進行cvs初始化的目錄,如:/home/cvsroot;
3) Host Address:用來配置cvs伺服器所在伺服器的地址,可以是IP地址,也可以是DNS名,如:10.104.1.204;
4) User name:用來配置要使用些WinCVS來登入CVS伺服器的使用者名稱,如:cvsyxwu,使用者的登入必須由管理員把其添加cvs使用者組中;
5) CVSROOT:此項一般都不需要使用者進行修改,使用者在輸入上邊的幾個選項時,系統將自動根據使用者的輸入產生此項的相應內容。
6)在上一個介面上選擇“Globals” ,進行全域選項的設定,此項的配置主要是要注意這幾選項:
第一,Checkout read-only不要選上,否則,checkout出來的原始碼將不允許使用者進行修改,並且此選項預設是選中的;
第二,Prune (remove) empty directories也不要選上,否則,會自動刪除空目錄;
第三,對一般配置沒有特殊要求的,把Dirty files support、Supply control when adding與TCP/IP compression選項選中;

2.2 登入WinCVS伺服器
選擇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,那麼要根據錯誤的提示進行相應的修改。

2.3拷貝相應模組代碼並進行開發
1) 在workspace中的Modules選中要存放checkout模組的目錄;
2) 選擇Create->Checkout Modeles,將出現一個對話方塊,需要進行選擇。其中,Module name and path on the server就是要存放checkout 內容的目錄,由使用者輸入;而Local folder to checkout to就是第一種使用者所選擇的目錄。
3) 至此你就可以在剛才check out的代碼上進行修改或開發了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.