三、cvs服務(wù)器架與應(yīng)用實例
1.服務(wù)器安裝配置
假設(shè)目前有一工作項目,需要用cvs 來管理員碼.這個開發(fā)組為內(nèi)部3人,器ip 分別是:192.168..1.2(用戶名t1), 192.168.1.3)(用戶名時t3),193.168.1.3(用戶名t3),遠程用戶一人,其主機是 tom.example.com.(用戶名是tom)
如果你已經(jīng)安裝了cvs,建立一cvs 主機為 cvs.exam.org的服務(wù)器非常簡單.步驟大致如下:
1.1 以root 身份登錄.建立軟件庫(repository)
$export CVSROOT=/cvsroot
$mkdir /cvsroot
$cd /cvsroot
$cvs init
1.2設(shè)置執(zhí)行權(quán)限
$chmod /cvsroot/CVSROOT 744 (/clearcase/" target="_blank" >ccvsroo/CVSOOT設(shè)置為只讀)
$chmod /cvsroot 764 組號 (/cvsroot 對開發(fā)組可讀寫)
修改文件以利于其他人使用,因為開發(fā)組人員是系統(tǒng)用戶,所以在這里用系統(tǒng)的用戶名和password是比較好的.先編輯.rhosts件如下:
tom.example.com. tom
修改服務(wù)器上的 /etc/inetd.conf文件,加入如下的句子
2401 stream tcp nowait root /usr/local/bin/cvs cvs -f --allow-root=/usr/cvsroot pserver
這樣一來,一個基本的cvs 服務(wù)器建好了.
我們這里只是提供了一個基本的應(yīng)用.cvs 真正的細節(jié)應(yīng)用非常復(fù)雜.我們這里只進行一些拋磚引玉的介紹.與興趣的朋友可以細讀它的安裝文檔.
2.應(yīng)用實例
(使用主機上的cvs 系統(tǒng),可以telnet 到主機上,然后使用,和本機使用沒什么差別,所以本文一直不提)
假設(shè)上例中的tom 想使用 cvs 主機上的cvs系統(tǒng)以和大家協(xié)作開發(fā).首先它營配置自己的一些環(huán)境變量.首先編輯/etc/services'加入:
cvspserver 2401/tcp
然后在.profile 文件中加入如下代碼
CVSROOT=:etx:psever:tom@cvs.exam.org:/cvsroot
Export CVSROOT
這樣他便可以使用$cvs login 來登錄了.下面我們便以tom 的具體使用為例子講一下cvs 的應(yīng)用.和其他linux 命令一樣.cvs 也有大量的參數(shù).我么將在下一節(jié)做一個列表.
Tom 在/usr/test 目錄下有如下文件
Ecample.c exampl2.c tes1.c test2.c utimel.c tty.c
如果想在軟件庫建立自己的目錄
$cd /usr/test
~test$ cvs import –m “tom first creation” tomdir tom tomwork
N tomdit/example.c
N tomdit/exampl2.c
N tomdir/test1.c
N tomdir/test2.c
N tomdir/utmel.c
N tomdit/tty.c
No conflicts creat by this import
命令說明 import 提交命令 –m 后加描述.tom 發(fā)行商 tomwork 是發(fā)行標號.如果提示CVSROOT 不對,可以用- -d 加CVSROOT
注:一切cvs 的命令 可以用 cvs command –H 來獲得幫助. 這時服務(wù)器端的/cvs 目錄下多了一個 tomdir 子目錄.內(nèi)容下:
example.c,v exampl2.c,v test1.c,v test2.c,v tty.c,v utimel.c,v
至此首次提交完成.
這樣便是一不小心刪除了test 目錄也不用擔心.使用如下命令,可從軟件庫中檢出源文件的備份
$/cd usr
`usr$/cvs checkout test tomdir-r 1.1
U test/exsample.c
U test/exampl1.c
U test/test1.c
U test/test2.c
U test/tty.c
U test/ulnem.c
cvs checkout命令缺省是得到新版本.我們也可以得到某一個老版本,此命令是將tomdir的1.1版的代碼取出. 恢復(fù)后test 目錄增加了一個CVS 目錄是用來管理的,以便在你下一次提交或修改的時候,和服務(wù)器上的管理文件相接口,保證版本好.這個例子非常小,現(xiàn)實中工程非常可能文件非常多,這樣可以先恢復(fù) CVSROOT 的模塊
~usr/$cvs checkout CVSROOT/mouldes
~/usr/$vi CVSROOT/mouldes 編輯模塊名,如我們在文件尾加上
src project/src
print project/src/print
cvs commit
以后我們可以用cvs checkout print來代替
cvs checkout project/src/print
編輯完后即可以提交文件
~usr/$cvs commit –m “edit of mouldes name” CVSROOT/mould除了可以恢復(fù)整個目錄后也可以恢復(fù)單個文件或模塊
~usr/test/$cvs checkout –m “newer file “ tty.c
在恢復(fù)了文件以后, tom 便可以使用各種編輯器,對源文件進行修改,修改完成以后可以提交它的工作成果了
~/usr/cvs commit test tomdir.
這樣,tom 便完成了一次源文件的升級.其他的同理可得