您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源配置管理工具 > cvs
CVS 速成班
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/1/18 14:26:35 ] 推薦標(biāo)簽:

結(jié)合文檔和一些網(wǎng)上資源,折騰了半天終于搞定了CVS,我寫一點(diǎn)非常簡單的"速成"
的教材.希望對(duì)大家有用. 

下面是我的步驟和做法. 

1,要求: 

root 權(quán)限; 
CVS軟件,請(qǐng)找到相關(guān)的rpm,tgz,deb 等包裝上,或者到

http://www.cvshome.org/CVS/Dev/code 
下載原程序編譯安裝,這里我不準(zhǔn)備介紹它的安裝,請(qǐng)參考CVS自身的文檔安裝.
我使用Slackware的tgz包,安裝的命令是 
#installpkg cvs*.tgz 
其他包請(qǐng)參考對(duì)應(yīng)包管理工具的命令. 
一定的系統(tǒng)資源,要有一定內(nèi)存(32M能工作得很好),要一定的磁盤空間,看
你的項(xiàng)目的大小和多少而定. 
2,架設(shè)CVS服務(wù)器: 
建立CVSROOT目錄,因?yàn)檫@里涉及到用戶對(duì)CVSROOT里的文件讀寫的權(quán)限問題,
所以比較簡單的方法是建立一個(gè)組,然后再建立一個(gè)屬于該組的帳戶,而且以后有
讀寫權(quán)限的用戶都要屬于該組.假設(shè)我們建一個(gè)組cvs,用戶名cvsroot.建組和用
戶的命令如下 
#groupadd cvs 
#adduser cvsroot
生成的用戶家目錄在/home/cvsroot(根據(jù)自己的系統(tǒng)調(diào)整) 
用cvsroot用戶登陸,修改 /home/cvsroot。–VSROOT)的權(quán)限,賦與同組人有讀寫
的權(quán)限: 
$chmod 771 .。ɑ蛘770應(yīng)該也可以) 
注意:這一部分工作是按照文檔說明做的,是否一定需要這樣沒有試驗(yàn),我
會(huì)在做試驗(yàn)后在以后版本的教程說得仔細(xì)一點(diǎn).如果您有這方面的經(jīng)驗(yàn)請(qǐng)?zhí)?br /> 供給我,謝謝. 
建立CVS倉庫,(仍然是cvsroot用戶),用下面命令: 
$cvs    -d /home/cvsroot init
以root身份登陸,修改/etc/.netd.conf 和 /etc/services,分別加入下面一行: 
在 /etc/inetd.conf 里加入: 
cvsserver    stream    tcp    nowait    root    /usr/bin/cvs    cvs --allow-root=/home/cvsroot pserver 
說明:上面的行是單獨(dú)一整行,/usr/bin/cvs 應(yīng)該是你的cvs版本的命令路徑,
請(qǐng)根據(jù)自己的系統(tǒng)調(diào)整./home/cvsroot 是你建立的CVSROOT的路徑,也請(qǐng)
根據(jù)上面建立目錄的部分的內(nèi)容做調(diào)整. 

在/etc/services里加入: 
cvsserver    2401/tcp 

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

添加可以使用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用逗號(hào)
分隔開寫在后一個(gè)冒號(hào)后面.當(dāng)然,象RedHat等分發(fā)版有類似linuxconf這樣
的工具的話,用工具做這件事會(huì)更簡單些.
重起inetd使修改生效: 
#killall -HUP inetd
這樣服務(wù)器設(shè)置完成了.我們接著搞客戶端. 
3,設(shè)置客戶端,如果是Linux(或者其他*nix),客戶端和服務(wù)器端的軟件是一樣的,如果是
Win,MAC等平臺(tái),請(qǐng)到http://www.loria.fr/cgi-bin/molli/wilma.cgi/rel找相應(yīng)的客戶端軟件,
這里我先說一下在Linux(*nix)里怎么做: 

設(shè)置環(huán)境變量CVSROOT: 
$export CVSROOT=:pserver:laser@the_server_name:

/home/cvsroot 
注意:這里的pserver是訪問方式,我在上面設(shè)置的是口令認(rèn)證,所以這里是
pserver,如果你的CVS服務(wù)器設(shè)置成別的訪問模式,那么需要相應(yīng)修改.
laser是可以使用 CVS服務(wù)器的用戶名,這里可以根據(jù)你的設(shè)置修改,我在這
個(gè)版本設(shè)置的是直接使用系統(tǒng)用戶的口令文件,也是說laser必須是CVS服
務(wù)器上的合法用戶,這里當(dāng)然有安全問題,CVS可以設(shè)置成為擁有自己的用戶,
我將在以后的版本里面增加這些內(nèi)容,或者您也可以提供一些補(bǔ)充,或者直接
讀CVS的文檔.the_server_name是CVS服務(wù)器的名稱或者IP地址,根據(jù)你的情
況填寫,/home/cvsroot是你的CVS服務(wù)器的CVSROOT目錄,根據(jù)你的CVS服務(wù)
器設(shè)置做修改或者詢問管理員.你可以把這行放到你的shell的profile里
(.bash_profile,.profile等)這樣不用每次敲一長串命令了. 
 

登陸CVS服務(wù)器: 
$cvs login,這時(shí)候cvs會(huì)問你口令,請(qǐng)把你在CVS服務(wù)器上的口令敲進(jìn)去,這里
是laser在CVS服務(wù)器上的系統(tǒng)用戶的口令: 
 Passwd:xxxxxxxx 
成功登陸后將在你的家目錄建立一個(gè).cvspass文件,以后不用輸入口令了.
好,客戶端設(shè)置完成,簡單吧. 
現(xiàn)在服務(wù)器和客戶端都設(shè)置好了,那么怎么用呢,我在這里寫一個(gè)簡單的(估計(jì)也是常用
的)命令介紹: 
首先,建立一個(gè)新的CVS項(xiàng)目,一般我們都已經(jīng)有一些項(xiàng)目文件了,這樣我們可以用下面步驟
生成一個(gè)新的CVS項(xiàng)目: 

進(jìn)入到你的已有項(xiàng)目的目錄,比如叫cvstest: 
$cd  cvstest
運(yùn)行命令: 
$cvs import -m "this is a cvstest project" cvstest     v_0_0_1     start 
說明:import 是cvs的命令之一,表示向cvs倉庫輸入項(xiàng)目文件. 
              -m參數(shù)后面的字串是描述文本,隨便寫些有意義的東西,如果不加 -m 參
數(shù),那么cvs會(huì)自動(dòng)運(yùn)行一個(gè)編輯器(一般是vi,但是可以通過修改環(huán)境變量
EDITOR來改成你喜歡用的編輯器.)讓你輸入信息, 
             cvstest 是項(xiàng)目名稱(實(shí)際上是倉庫名,在CVS服務(wù)器上會(huì)存儲(chǔ)在以這個(gè)名字
命名的倉庫里.) 
             v_0_0_1是這個(gè)分支的總標(biāo)記.沒啥用(或曰不常用.) 
             start 是每次 import 標(biāo)識(shí)文件的輸入層次的標(biāo)記,沒啥用.
這樣我們建立了一個(gè)CVS倉庫了,然后,我們可以把這個(gè)測(cè)試項(xiàng)目的文件刪除.試驗(yàn)一下如何
從倉庫獲取文件.這里我假設(shè)上面的所有客戶端工作你都已經(jīng)做過了. 
運(yùn)行下面的命令: 
   $cvs checkout cvstest
從倉庫中檢索出cvstest項(xiàng)目的源文件. 
如果你已經(jīng)做過一次checkout了,那么不需要重新checkout,只需要進(jìn)入cvstest項(xiàng)目的目錄,更新
一把行了: 
$cd cvstest 
$cvs update
一下即可.又或者你不想直接更新,只是想看看有沒有更新的東西,那么: 
$cvs status
這時(shí)后會(huì)打印出一長串狀態(tài)報(bào)告(你可能需要用類似less這樣的命令分頁顯示,或者定向到一個(gè)輸
出文件里慢慢看.),對(duì)項(xiàng)目中的每個(gè)文件有一份狀態(tài)報(bào)告,類似這樣:

================================================ 
File: foo.c             Status: Up-to-date 
   Working revision:    1.1.1.1 'Some Date' 
   Repository revision: 1.2     /home/cvsroot/cvstest/foo.c,v 
   Sticky Tag:          (none) 
   Sticky Date:         (none) 
   Sticky Options:      (none) 

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