您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
教你用Linux作CVS服務(wù)器
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/1/28 13:41:26 ] 推薦標(biāo)簽:

3.在管理中的相關(guān)技術(shù)

3.1 在管理源文件的一種技術(shù)叫"關(guān)鍵字替換".在每次執(zhí)行"cvs commit"操作后源文件的某些關(guān)鍵字會被替換為可用的詞

$AUTHOR$ 用戶名

$Data$ 登記時的時間

$Header$ 標(biāo)準(zhǔn)的首部,包含RCS的完整路徑名,日期,作者

$Id$ 除RCS文件名不完整外與$Header$同.

$Log$ 包含RCS的完整路徑名,版本號,日期,作者和在提交時提供的日志信息.

$RCSfile$ 包含RCS的文件名,不包括路徑名

$Revision$ 分配的版本號

$Source$ RCS文件的完整名

$State$ 分配的版本的狀態(tài),由 cvs admin -s 分配.

例: 在cvs commit之前,main.c里有

static char *rcsid="$Id$";

執(zhí)行cvs commit后

main.c的改行變?yōu)?

static char *rcsid="$Id: main.c,v 1.2 1999/04/29 15:10:14 trimblef Exp$";

當(dāng)然,這里只是一個演示.在實際的程序開發(fā)中,這種技術(shù)有非常有用的作用,在此不多贅述.有興趣的朋友可參考相關(guān)書籍.

3.2 創(chuàng)建分支可以使用戶對一些文件使用命令commit進行修改時不會影響主干. 創(chuàng)建分支應(yīng)首先為擬作修改的那些文件創(chuàng)建一個標(biāo)簽(tag).

標(biāo)簽是賦于一個文件或一組文件的符號.在源代碼的生命周期里,組成一組模塊的文件被賦于相同的標(biāo)簽.在工作目錄中執(zhí)行

~usr/teat/$cvs tag release-1-0

標(biāo)簽創(chuàng)建后, 可以為其創(chuàng)建一個分支:

~usr/teat/$cvs rtag -b -r release-1-0 release-1-0-path print

-b :創(chuàng)建分支

-r release-1-0 :指定存在的標(biāo)簽

releas-1-0-patch:分支

print: 模塊名

使用cvs update -j 選項可以將分支上的改變與本地文件拷貝合并.

~usr/teat/$cvs update -j release-1-0 print.c

對源文件作必要修改后, 可以用cvs release 刪除本地工作拷貝

并通知其他開發(fā)者這個模塊不再使用.

~use/$cvs release -d test

3.3 沖突解決

在有多個用戶對同一個文件進行修改時,如果修改了其中的相同部分,而修改后的內(nèi)容如果有不同的話,出現(xiàn)沖突是不可避免的。

例如在CVS 文件倉庫中有一個文件 test.c ,它的版本是 1.4, 用戶A 先檢出該文件進行修改,而稍后有用戶B 檢出該文件進行修改,并提前提交成 1.5,這樣在用戶A再提交時會出現(xiàn)沖突,這時CVS會提示需要手工解決。

例如,文件倉庫中的版本1.4:內(nèi)容為:

#include

main()

{

int i;

for(i = 0; i < 100; i++)

printf(“Count: %d
”, i);

}

用戶B 1.5:

#include

main()

{

int i;

for(i = 0; i < 10; i++)

printf(“Count: %d
”, i);

printf(“Over
”);

}

用戶A :

#include

main()

{

int i;

for(i = 0; i < 50; i++)

printf(“Count: %d
”, i);

return;

}

上一頁12345678下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd