CVS
介紹
CVS
代表協(xié)作版本系統(tǒng),這是一個將一組文件放在層次目錄樹中以保持同步的系統(tǒng)。人們可以從
CVS
服務(wù)器上更新他們的本地層次樹副本,并將修改的結(jié)果或新文件發(fā)回;或者刪除舊文件。
CVS
基于客戶端
/
服務(wù)器的行為使得其可容納多用戶,構(gòu)成網(wǎng)絡(luò)也很方便。這一特性使得
CVS
成為位于不同地點的人同時處理數(shù)據(jù)文件
(
特別是程序的源代碼
)
時的首選。
?
服務(wù)器
1
。初始化
cvs
服務(wù)器環(huán)境
#
cvs –d /tmp/source init
命令在
/usr/local/sourc
下建立了
cvsroot
目錄,里面是初始化的
cvs
服務(wù)器配置文件。
2
。把
cvs
服務(wù)器放到
xinetd
中
#
vi /etc/xinetd.d/cvspserver
建立服務(wù)文件并添加內(nèi)容
server cvspserver
{
???????? flags????????? = REUSE
???????? socket_type?????? = stream
???????? wait???????????????????? = no
???????? user??????????????????? = root
???????? protocol???????????? = tcp
???????? server???????????????? = /usr/bin/cvs
???????? server_args?????? = -f –allow-root=/tmp/source pserver
???????? disable?????????????? = no
}
其中
server_args
一個參數(shù)指定了源代碼路徑
,
一個指定了服務(wù)器使用密碼認(rèn)證方式
.
然后確保
/etc/services
文件中有以下兩行
cvspserver 2401/tcp
cvspserver 2401/udp
最后重啟
xinetd
服務(wù)。
?
測試
假設(shè)
cvs
服務(wù)器在
192.168.0.192
上,系統(tǒng)上有一個用戶
cvs
。登陸另一臺
linux
機器,執(zhí)行下列命令可以完成測試。
$export CVSROOT
=
:pserver:cvs@192.168.0.192:2401/tmp/source
$cvs login
輸入密碼,沒有錯誤提示表示登陸成功。
$cvs logout
登出
?
用戶認(rèn)證
cvs
服務(wù)器有一套自己的用戶認(rèn)證機制,此方法使用了系統(tǒng)上用戶直接作為
cvs
服務(wù)器用戶,采用
linux
組、用戶權(quán)限實現(xiàn)這樣的功能。
例如,在
linux
系統(tǒng)上有兩個開發(fā)組
a
、
b
,分別有用戶
a
-
user1
,
a
-
user2
,
b
-
user1
,
b
-
user2
。
模塊
a
-
source
,希望
a
組成員都可以讀寫,
b
組沒有任何權(quán)限,使用以下命令:
#
chown –R a-user1 a-source
#
chgrp –R a a-source
#
chmod –R 770 a-source
如果希望
a
-
source
,只有
a
-
user1
可以寫,同組其他用戶可以讀,
b
組沒有任何權(quán)限,把
chmod
命令改成
-
R 750
即可。
?
?
說明
cvs
中默認(rèn)一個用戶
checkout
代碼時候,會在當(dāng)前模塊下生成一個鎖文件,如果這個用戶對當(dāng)前模塊沒有寫權(quán)限,讀是不可能的。配合上面的權(quán)限設(shè)置,必須改以下
cvs
服務(wù)器配置。改成不在當(dāng)前模塊目錄下生長鎖文件,把鎖文件集中到一個所有用戶都有讀寫權(quán)限的目錄。修改配置文件
CVSROOT/config
#
Put CVS lock files in this directory rather than directly in the repository.
#
LockDir=/var/lock/cvs
把
LockDir
設(shè)上就可以了。
?
系統(tǒng)建立多個源代碼庫
1
。使用一個不同路徑
2
。
/etc/xinetd.d
目錄下建立一個新的任務(wù)配置文件,如
cvspserver1
,文件中第一行
server
名稱一定要區(qū)分。如改為
server cvspserver1
,
server_args
做相應(yīng)變動。還要在
/etc/services
文件中,加入新的服務(wù)器端口,如
cvspserver1 2402/tcp
。重啟
xinetd
即可。
?
CVS
的使用流程
1
。登入
(login)
,只需做一次。需要密碼認(rèn)證,除非是允許匿名登入,否則都要輸入
CVS Server
管理者配給您的密碼。
2
。取出
(checkout)
整份專案
(
類似檔案下載
)
。此時,您的硬碟中會有一份專案的原始碼目錄,我們稱之為工作目錄。
3
。依您的程式意圖,修改某一支程式。
4
。查詢程式的在庫狀態(tài)
(status)
。
(3
、
4
這二個動作可互調(diào)或合并操作
)
5
。視在庫狀態(tài),比對二者的差異
(diff)
,調(diào)整修改的程式
(
是否和他人修改的部份發(fā)生沖突,若無沖突,那就十分單純,可在修改完之後,直接存入
(commit/ci)
檔案庫
(repository)
中
)
6
。若有沖突,在
mailling list
中,和他人討論,取得協(xié)調(diào)。
7
。將修改好的檔案
commit
存入
CVS
檔案柜
(
俗稱
checkin
,類似檔案上傳
)
,請務(wù)必在程式碼注解中,詳述您的意圖。
8
。透過
mailling list
說明您的想法,和大家討論。
9
。每經(jīng)過一段時日,應(yīng)查詢在庫狀態(tài),并更新您的工作目錄
(update)
。
posted on 2007-03-08 08:33
???MengChuChen 閱讀(399)
評論(0) 編輯 收藏 所屬分類:
VSS