(2) 文件版本管理
cvs log [-lR][-r rev][-d date][-w login][files…]
-l 不處理子目錄
-R 對子目錄做同樣處理
-r 指定版本號
-d 指定時間
-w 指定登錄名
使用上面的命令可以參看當(dāng)前模塊或指定文件的所有歷史版本信息。
cvs annotate [-lR][-r rev|-D date] files
-l 不處理子目錄
-R 對子目錄做同樣處理
-r 指定版本號
使用上面的命令可以參看指定文件(檢出之后)的所有修改信息。
例:$cvs annotate cvstest/c/test.c
輸出:
版本 修改人 修改時間 源代碼
1.1 (tang 18-Jan-00): #include stdio.h
1.1 (tang 18-Jan-00): #include string.h
1.1 (tang 18-Jan-00):
1.1 (tang 18-Jan-00): main()
1.1 (tang 18-Jan-00): {
1.1 (tang 18-Jan-00): int i = 0 ;
1.1 (tang 18-Jan-00):
1.1 (tang 18-Jan-00): for(i = 0; i < 20; i++)
1.1 (tang 18-Jan-00): printf("Count: %d
", i);
1.1 (tang 18-Jan-00):
1.3 (tang 18-Jan-00): printf("222222
");
1.4 (tang 18-Jan-00): printf("333333
");
1.1 (tang 18-Jan-00): }
使用下面的命令可以生成相對于一個指定主版本的分支版本:
cvs rtag –b –r rev_root rev_branch file_name
-b 指定生成一個分支版本
-r 指定該分支的主干節(jié)點版本號
rev_root 主干版本號
rev_branch 分支版本號
file_name 指定文件,使用“.”表示當(dāng)前目錄下所有文件
使用上面的命令可以生成一個對應(yīng)版本號的分支版本,由于CVS 版本號是用數(shù)字表示的,而且在同一個模塊下不同文件的版本完全可能是不同的,所以使用標(biāo)識會更方便。
例:
$cvs rtag –b –r 1.2 tlb-1 SOURCE
以后要訪問該分支版本,可以使用“-r” 選項
$cvs checkout –r tlb-1 SOURCE
從當(dāng)前檢出的版本切換到一個分支版本:
$cvs update –r tlb-1 SOURCE
使用下面的命令可以看版本信息:
cvs status [–vlR] files
-v 顯示所有信息
-l 不顯示子目錄信息
-R 顯示子目錄信息
cvs update –j rev module
把當(dāng)前所做的修改與指定版本的文件進(jìn)行合并。
主干 1.1 1.2 1.3 1.4 1.5 1.6
↓
分支tlb-1 1.2.2.1 1.2.2.2 1.2.2.3
如果要合并分支tlb-1上的版本:
$cvs update –j 1.2.2.3 –j tlb-1 test.c
其中1.2.2.3可以通過tag命令生成一個容易記憶的標(biāo)識。
如果要合并分支tlb-1到主干上1.2 :
$cvs update –j tlb-1 test.c
如果要合并主干上的不同版本(注意順序很重要,同時在指定版本之間的所有修改將被丟棄):
$cvs update –j 1.5 –j 1.2 test.c
如果在不同版本之間模塊的文件有增減,則可以:
$cvs update –A
$cvs updata –jbranch_name
4. 在遠(yuǎn)程機(jī)器上使用CVS
----------------------
通過網(wǎng)絡(luò)使用CVS 有很多種方式,但在這里只介紹比較簡單的一種:通過rsh 執(zhí)行cvs 命令。
1) 在遠(yuǎn)程機(jī)器的.rhosts中加入對本地機(jī)的訪問許可:
tom tang
2) 使用下面的命令檢出模塊ESMSTRG
$cvs –d :ext:tang@esmpro:/work/cvsroot checkout SOURCE
其中, ext 指明了連接方式為 rsh, tang 指明了本地用戶, esmpro 指明了遠(yuǎn)地主機(jī),/work/cvsroot 指明了在遠(yuǎn)地主機(jī)上的$CVSROOT路徑,可以在本地設(shè)置CVS_SERVER環(huán)境變量指明這個目錄