CVS 是 Concurrent Version System(並行版本系統)的縮寫,用於版本管理. 如果大家曾經參與過多人HTTP://www.aliyun.com/zixun/aggregation/13700.html">協作開發的專案,大家肯定有這樣的痛苦經歷:由於多個人同時修改同一個檔, 自己辛辛苦苦修改的程式被別人徹底刪除了. 另外,如果你的軟體/程式已經發佈了三個版本,而這時候使用者需要你修改第二個版本的東西,也許你會因為只保留了最新版本而痛哭流涕。 還有就是你對程式做了一些修改,但是修改很少,你只想給遠方的同事發一個兩個版本之間的差別檔,這樣可以免于郵箱不夠大,網速太慢之類的問題. 為了解決類似這樣的問題,以及諸如生成補丁檔,歷史版本修改等,一幫駭客(褒義)在原先 Unix 體系裡很成熟的 SCCS 和 RCS 的基礎上,開發了 CVS。 (SCCS:Source Code Control System,RCS:Revision Control System)。
CVS 的基本工作思路是這樣的:在一台伺服器上建立一個倉庫,倉庫裡可以存放許多不同專案的來源程式。 由倉庫管理員統一管理這些來源程式. 這樣,就好象只有一個人在修改檔一樣. 避免了衝突. 每個使用者在使用倉庫之前,首先要把倉庫裡的專案檔案下載到本地。 使用者做的任何修改首先都是在本地進行,然後用 cvs 命令進行提交,由 cvs 倉庫管理員統一 修改. 這樣就可以做到追蹤檔案變化,衝突控制等等。
由於 CVS 是典型的 C/S 結構的軟體,因此它也分成伺服器端和用戶端兩部分。 不過大多數CVS 軟體都把它們合二為一了。 我們這裡就分別從伺服器和用戶端的角度討論cvs的使用。
Cvs伺服器安裝
首先確保系統安裝有cvs:
[root@mail xinetd.d]# rpm -qa|grep cvs
cvs-1.11.1p1-3
如果命令輸出類似于上面的輸出則說明系統已經安裝有cvs,否則就需要從安裝光碟中安裝cvs的rpm包。
一 創建CVS屬主使用者:
# useradd -d /cvsroot cvs
# chmod 771 /cv sroot
二、建立CVS倉庫(初始化cvs)
# su cvs
$ cvs -d /cvsroot init
$exit
#
三、啟動cvs伺服器
在/etc/xinetd.d/目錄下創建檔cvspserver,內容如下:
# default: on
# description: The cvs server sessions;
service cvspserver
{
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/cvsroot pserver
log_on_failure += USERID
only_from = 192.168.0.0/24
}
其中only_from是用來限制訪問的,可以根據實際情況不要或者修改。
修改該檔許可權:
# chmod 644 cvspserver
然後重新開機xinetd:
# /etc/rc.d/init.d/xined restart
然後察看cvs伺服器是否已經運行:
[root@mail xinetd.d]# netstat -lnp|grep 2401
tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 7866/xinetd
則說明cvs伺服器已經運行。
四、創建用來訪問cvs的使用者
前面創建的cvs使用者是cvs倉庫管理使用者,而為了讓使用者訪問則還需要一個訪問使用者:
# useradd cvspub
# usemod -G cvs cvspub
這裡添加了一個使用者cvspub,並且將該使用者添加到cvs組中。