4).多用戶開發(fā)
在多用戶的情況下,如果不同用戶修改的是同一個(gè)文件的不同部分,則使用下面的命令能進(jìn)行版本合并(把檢出的文件與當(dāng)前的新版本合并):
# cvs update
(1)沖突解決
在有多個(gè)用戶對(duì)同一個(gè)文件進(jìn)行修改時(shí),如果修改了其中的相同部分,而修改后的內(nèi)容如果有不同的話,出現(xiàn)沖突是不可避免的。如果在CVS 文件倉庫中有一個(gè)文件 test.c ,它的版本是1.4,用戶A 先檢出該文件進(jìn)行修改,而稍后有用戶B檢出該文件進(jìn)行修改,并提前提交成 1.5,而在用戶A再提交時(shí)會(huì)出現(xiàn)沖突(如果文件內(nèi)容不同的話),這時(shí)CVS會(huì)提示需要手工解決。
(2)文件版本管理
cvs log [-lR][-r rev][-d date][-w login][files…]
-l 不處理子目錄
-R 對(duì)子目錄做同樣處理
-r 指定版本號(hào)
-d 指定時(shí)間
-w 指定登錄名
使用上面的命令可以參看當(dāng)前模塊或指定文件的所有歷史版本信息。
cvs annotate [-lR][-r rev|-D date] files
-l 不處理子目錄
-R 對(duì)子目錄做同樣處理
-r 指定版本號(hào)
使用上面的命令可以參看指定文件(檢出之后)的所有修改信息。
使用下面的命令可以生成相對(duì)于一個(gè)指定主版本的分支版本:
cvs rtag –b –r rev_root rev_branch file_name
-b 指定生成一個(gè)分支版本
-r 指定該分支的主干節(jié)點(diǎn)版本號(hào)
rev_root 主干版本號(hào)
rev_branch 分支版本號(hào)
file_name 指定文件,使用“.”表示當(dāng)前目錄下所有文件
使用上面的命令可以生成一個(gè)對(duì)應(yīng)版本號(hào)的分支版本,由于CVS 版本號(hào)是用數(shù)字表示的,而且在同一個(gè)模塊下不同文件的版本完全可能是不同的,所以使用標(biāo)識(shí)會(huì)更方便。
例:
# cvs rtag –b –r 1.2 tlb-1 SOURCE
以后要訪問該分支版本,可以使用“-r” 選項(xiàng)
# cvs checkout –r tlb-1 SOURCE
從當(dāng)前檢出的版本切換到一個(gè)分支版本:
# cvs update –r tlb-1 SOURCE
使用下面的命令可以看版本信息:
cvs status [–vlR] files
-v 顯示所有信息
-l 不顯示子目錄信息
-R 顯示子目錄信息
cvs update –j rev module
把當(dāng)前所做的修改與指定版本的文件進(jìn)行合并。
如果在不同版本之間模塊的文件有增減,則可以:
# cvs update –A
# cvs updata –jbranch_name
5).在遠(yuǎn)程機(jī)器上使用CVS
通過網(wǎng)絡(luò)使用CVS 有很多種方式,但在這里只介紹比較簡(jiǎn)單的一種:通過rsh 執(zhí)行cvs 命令。
1) 在遠(yuǎn)程機(jī)器的.rhosts中加入對(duì)本地機(jī)的訪問許可:
tom huang
2) 使用下面的命令檢出模塊
# cvs –d :ext:huang@wyhlinux:/work/cvsroot checkout SOURCE
其中,ext 指明了連接方式為 rsh,huang指明了本地用戶,wyhlinux指明了遠(yuǎn)地主機(jī),/work/cvsroot 指明了在遠(yuǎn)地主機(jī)上的$CVSROOT路徑,可以在本地設(shè)置CVS_SERVER環(huán)境變量指明這個(gè)目錄。