提交時會提示有沖突,這樣需要手工編輯,這時如果用戶A運行了$cvs update 之后,再編輯test.c, 會看到test.c 的內容是這樣的:
#include
main()
{
int i;
<<<<<<< test.c
for(i = 0; i < 50; i++)
=======
for(i = 0; i < 10; i++)
>>>>>>> 1.5
printf("Count: %d
", i);
<<<<<<< test.c
return;
=======
printf("Over
");
>>>>>>> 1.5
}
這樣需要,根據任務的不同,來手工修改,這是比較麻煩的,所以在真正的協作開發(fā)中,很少,對同一個文件給與,很多人相同的提交權限.
3.4 文件版本管理
版本管理系統,重要的莫過于對文件版本的管理,系統默認的版本升級使用的版本號是一定的.如果由于特殊需要,要自己定義出文件的版本號時,你可以用一下命令:
cvs log [-lR][-r rev][-d date][-w login][files…]
其中,參數的意義如下:
-l 不處理子目錄
-R 對子目錄做同樣處理
-r 指定版本號
-d 指定時間
-w 指定登錄名
使用下面的命令可以參看當前模塊的版本號或指定文件的所有歷史版本信息。
cvs annotate [-lR][-r rev|-D date] files
其中,參數的意義如下:
-l 不處理子目錄
-R 對子目錄做同樣處理
-r 指定版本號
使用下面的命令可以參看指定文件(檢出之后)的所有修改信息。
$cvs annotate cvstest/c/test.c
輸出依次為:版本 修改人 修改時間 源代碼
1.1 (tang 18-Jan-00): #include
1.1 (tang 18-Jan-00): #include
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 指定文件,使用“.”表示當前目錄下所有文件
使用下面的命令可以生成一個對應版本號的分支版本,由于CVS 版本號是用數字表示的,而且在同一個模塊下不同文件的版本完全可能是不同的,所以使用標識會更方便。