提交時(shí)會(huì)提示有沖突,這樣需要手工編輯,這時(shí)如果用戶A運(yùn)行了$cvs update 之后,再編輯test.c, 會(huì)看到test.c 的內(nèi)容是這樣的:
#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
}
這樣需要,根據(jù)任務(wù)的不同,來(lái)手工修改,這是比較麻煩的,所以在真正的協(xié)作開(kāi)發(fā)中,很少,對(duì)同一個(gè)文件給與,很多人相同的提交權(quán)限.
3.4 文件版本管理
版本管理系統(tǒng),重要的莫過(guò)于對(duì)文件版本的管理,系統(tǒng)默認(rèn)的版本升級(jí)使用的版本號(hào)是一定的.如果由于特殊需要,要自己定義出文件的版本號(hào)時(shí),你可以用一下命令:
cvs log [-lR][-r rev][-d date][-w login][files…]
其中,參數(shù)的意義如下:
-l 不處理子目錄
-R 對(duì)子目錄做同樣處理
-r 指定版本號(hào)
-d 指定時(shí)間
-w 指定登錄名
使用下面的命令可以參看當(dāng)前模塊的版本號(hào)或指定文件的所有歷史版本信息。
cvs annotate [-lR][-r rev|-D date] files
其中,參數(shù)的意義如下:
-l 不處理子目錄
-R 對(duì)子目錄做同樣處理
-r 指定版本號(hào)
使用下面的命令可以參看指定文件(檢出之后)的所有修改信息。
$cvs annotate cvstest/c/test.c
輸出依次為:版本 修改人 修改時(shí)間 源代碼
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): }
使用下面的命令可以生成相對(duì)于一個(gè)指定主版本的分支版本:
cvs rtag –b –r rev_root rev_branch file_name
其中,參數(shù)的意義如下:
-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ì)更方便。