您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
配置管理工具CVS簡單教程
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2012/12/4 16:57:47 ] 推薦標(biāo)簽:

  CVS 是 Concurrent Version System(并行版本系統(tǒng))的縮寫,用于版本管理。如果大家曾經(jīng)參與過多人協(xié)作開發(fā)的項目,大家肯定有這樣的痛苦經(jīng)歷:由于多個人同時修改同一個文件,自己辛辛苦苦修改的程序被別人徹底刪除了。另外,如果你的軟件/程序已經(jīng)發(fā)布了三個版本,而這時候用戶需要你修改第二個版本的東西,也許你會因為只保留了新版本而痛哭流涕。還有是你對程序做了一些修改,但是修改很少,你只想給遠方的同事發(fā)一個兩個版本之間的差別文件,這樣可以免于郵箱不夠大,網(wǎng)速太慢之類的問題。為了解決類似這樣的問題,以及諸如生成補丁文件,歷史版本修改等,一幫黑客(褒義)在原先 Unix 體系里很成熟的 SCCS 和 RCS 的基礎(chǔ)上,開發(fā)了 CVS.(SCCS:Source Code Control System,RCS:Revision Control System)

    CVS 的基本工作思路是這樣的:在一臺服務(wù)器上建立一個倉庫,倉庫里可以存放許多不同項目的源程序。由倉庫管理員統(tǒng)一管理這些源程序。這樣,好象只有一個人在修改文件一樣。避免了沖突。每個用戶在使用倉庫之前,首先要把倉庫里的項目文件下載到本地。用戶做的任何修改首先都是在本地進行,然后用 cvs 命令進行提交,由 cvs 倉庫管理員統(tǒng)一修改。這樣可以做到跟蹤文件變化,沖突控制等等。

    由于 CVS 是典型的 C/S 結(jié)構(gòu)的軟件,因此它也分成服務(wù)器端和客戶端兩部分。不過大多數(shù) CVS 軟件都把它們合二為一了。
 

結(jié)合文檔和一些網(wǎng)上資源,我寫一點非常簡單的“速成”的教材.希望對大家有用.
下面是我的步驟和做法:

前提要求:

root 權(quán)限;
CVS軟件,請找到相關(guān)的rpm,tgz,deb 等包裝上,或者到
http://www.cvshome.org/CVS/Dev/code
下載原程序編譯安裝,這里我不準(zhǔn)備介紹它的安裝,請參考CVS自身的文檔安裝.我使用Slackware的tgz包,安裝的命令是
#installpkg cvs*.tgz
其他包請參考對應(yīng)包管理工具的命令.
一定的系統(tǒng)資源,要有一定內(nèi)存(32M能工作得很好),要一定的磁盤空間,看你的項目的大小和多少而定.
架設(shè)CVS服務(wù)器:
建立 CVSROOT 目錄,因為這里涉及到用戶對CVSROOT里的文件讀寫的權(quán)限問題,所以比較簡單的方法是建立一個組,然后再建立一個屬于該組的帳戶,而且以后有讀寫權(quán)限的用戶都要屬于該組.假設(shè)我們建一個組叫cvs,用戶名是cvsroot.建組和用戶的命令如下
 

#groupadd cvs
#adduser cvsroot
 

生成的用戶家目錄在/home/cvsroot(根據(jù)自己的系統(tǒng)調(diào)整)
 

用 cvsroot 用戶登陸,修改 /home/cvsroot (CVSROOT)的權(quán)限,賦與同組人有讀寫的權(quán)限:
 

$chmod 771 . (或者770應(yīng)該也可以)
注意:這一部分工作是按照文檔說明做的,是否一定需要這樣沒有試驗,我會在做試驗后在以后版本的教程說得仔細一點.如果您有這方面的經(jīng)驗請?zhí)峁┙o我,謝謝.
 

建立CVS倉庫,(仍然是 cvsroot 用戶),用下面命令:
 

$cvs    -d /home/cvsroot init
 

以root身份登陸,修改 /etc/inetd.conf(使用 xinetd 的系統(tǒng)沒有此文件)和 /etc/services,
如果用的是 inetd 的系統(tǒng),在 /etc/inetd.conf 里加入:
cvsserver    stream    tcp    nowait    root    /usr/bin/cvs    cvs -f  --allow-root=/home/cvsroot pserver

說明:上面的行是單獨一整行,/usr/bin/cvs 應(yīng)該是你的cvs版本的命令路徑,請根據(jù)自己的系統(tǒng)調(diào)整./home/cvsroot 是你建立的CVSROOT的路徑,也請根據(jù)上面建立目錄的部分的內(nèi)容做調(diào)整.

如果是使用 xinetd 的系統(tǒng),需要在 /etc/xinetd.d/ 目錄下創(chuàng)建文件 cvspserver(此名字可以自己定義),內(nèi)容如下:
 

# default: on
# description: The cvs server sessions;

service cvsserver
{
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是用來限制訪問的,可以根據(jù)實際情況不要或者修改。修改該文件權(quán)限:


# chmod 644 cvspserver


在/etc/services里加入:


cvsserver    2401/tcp

說明:cvsserver 是任意的名稱,但是不能和已有的服務(wù)重名,也要和上面修改 /etc/inetd.conf 那行的第一項一致.這里我用的是 CVS 的口令認(rèn)證方式,CVS 還有其他認(rèn)證方式,我沒有做試驗,如果您有經(jīng)驗,請補充,謝謝.
 

添加可以使用 CVS 服務(wù)的用戶到 cvs 組:
以 root 身份修改 /etc/group,把需要使用 CVS 的用戶名加到 cvs 組里,比如我想讓用戶 laser 和gumpwu 能夠使用 CVS 服務(wù),那么修改以后的 /etc/group 應(yīng)該有下面這樣一行:
cvs:x:105:laser,gumpwu


在你的系統(tǒng)上GID可能不是105,沒有關(guān)系.主要是要把laser和gumpwu用逗號分隔開寫在后一個冒號后面.當(dāng)然,象RedHat等分發(fā)版有類似linuxconf這樣的工具的話,用工具做這件事會更簡單些.

重起inetd使修改生效:
 

#killall -HUP inetd
如果使用的是 xinetd 的系統(tǒng):


# /etc/rc.d/init.d/xined restart

這樣服務(wù)器設(shè)置完成了.我們接著搞客戶端.

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd