您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源配置管理工具 >
IBM Rational ClearCase 視圖全攻略
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/7 14:47:05 ] 推薦標(biāo)簽:

  完成了以上的選擇和設(shè)置后,可以成功創(chuàng)建一個(gè)視圖了。

  4 視圖的管理

  視圖通常與任務(wù)對(duì)應(yīng),經(jīng)過(guò)一段時(shí)間的使用后,用戶因需要會(huì)創(chuàng)建了多個(gè)視圖,這涉及到視圖的管理和維護(hù)問(wèn)題。

  4 .1 與視圖相關(guān)的基本操作

  對(duì)于普通開(kāi)發(fā)人員而言,與視圖相關(guān)的操作主要包括視圖的創(chuàng)建和刪除,操作相對(duì)比較簡(jiǎn)單。需要強(qiáng)調(diào)的是:在刪除視圖時(shí),要使用 ”Remove View”進(jìn)行操作,如圖9所示。如果使用”Remove View shortcut”,則只是刪除了該視圖的快捷方式,更新后還會(huì)再次出現(xiàn)。

  靜態(tài)視圖有一個(gè)特有的操作是 update,需要定期進(jìn)行,才能和VOB中的數(shù)據(jù)保持同步。

  圖 9

  4.2 關(guān)于 hijacked文件

  我們知道,靜態(tài)視圖將 VOB中的文件下載到本地后,文件是只讀的。如果你繞過(guò)檢出(checkout)操作,只是去掉某個(gè)需要更改文件的只讀屬性進(jìn)行操作,那么該文件被稱為“劫持”( hijacked)文件。 具體的表現(xiàn)為:在 ClearCase Explorer 中,處于“ hijacked ”的元素會(huì)有一個(gè)帶對(duì)號(hào)的紅色圓圈。

  如果出現(xiàn)“ hijacked”,有兩種操作方式可供選擇:

  • 鼠標(biāo)右擊“ Hijacked”的元素,選擇“Undo Hijacked”。為了不丟失你對(duì)文件所做的改動(dòng),Undo Hijacked之后,ClearCase自動(dòng)生成一個(gè)后綴為“keep”的私有文件(view private files),這時(shí)你不僅取消了Hijacked,同時(shí)也保存了你的工作成果(當(dāng)然如果不需要可以刪除這個(gè)私有文件)。

  • 更新視圖( update view),然后鼠標(biāo)右擊“Hijacked”的元素,選擇“Check Out”,該元素將處于“checked out”狀態(tài),這時(shí)你可以繼續(xù)對(duì)該元素進(jìn)行改動(dòng),也可以直接做Check in操作, 完成文件變更的入庫(kù),形成新的版本。

  以上也給大家提供了利用靜態(tài)視圖離線或在家辦公的方法,還不錯(cuò)吧。

  4.3 視圖的遷移

  該部分內(nèi)容主要針對(duì) ClearCase管理員而言。視圖的遷移主要是將View Server中的視圖在同一個(gè)機(jī)器中從一個(gè)存儲(chǔ)區(qū)域遷移到另外一個(gè)存儲(chǔ)區(qū)或者跨服務(wù)器間移動(dòng)。通常在視圖存儲(chǔ)空間不足或者為了提升View Server性能使用新服務(wù)器時(shí),需要進(jìn)行視圖的遷移,這樣原有的視圖信息不會(huì)被破壞,客戶端基本不受任何影響,遷移后可以正常使用原有的視圖。

  下面我們舉例說(shuō)明如何將視圖從 CCSERV1這臺(tái)視圖服務(wù)器遷移到CCSERV2上:

  4.3.1 首先對(duì)CCSERV1上的所有用戶的視圖信息進(jìn)行備份。

  4.3.2 將CCSERV2安裝為視圖服務(wù)器,并創(chuàng)建相應(yīng)的視圖存儲(chǔ)路徑。

  4.3.3 做好以上準(zhǔn)備后,可以進(jìn)行正式的遷移工作。

  • 在CCSERV1上停掉ClearCase服務(wù),如圖10所示。

  • 使用ccopy命令將CCSERV1的視圖拷貝到CCSERV2上新建的視圖存儲(chǔ)目錄中,如:

  ccopy G:cc_Storageviewsccview \ccserv2ccStorageviewsccview

  上面的操作是將 CCSERV1中ccview目錄中的視圖信息拷貝到CCSERV2的ccview中,如果有多個(gè)目錄需要進(jìn)行拷貝可以寫成一個(gè)腳本統(tǒng)一進(jìn)行。

  圖 10

  4.3.4 確認(rèn)拷貝到CCSERV2的數(shù)據(jù)是否完整。

  4.3.5 啟動(dòng)CCSERV1上的ClearCase服務(wù),在CCSERV2上對(duì)遷移的視圖進(jìn)行重新注冊(cè)。

  因?yàn)榭赡苌婕暗匠砂偕锨У囊晥D,單個(gè)進(jìn)行注冊(cè)是不現(xiàn)實(shí)的,需要通過(guò)程序進(jìn)行;镜乃悸肥窍葘⒁晥D原有的注冊(cè)信息刪除,然后重新注冊(cè)到CCSERV2上去。這里給大家一個(gè)perl語(yǔ)言編寫的例子供參考:

  printf ("All Views begin registering: ");

  @lines = `cleartool lsview -region soft1 -s`;

  foreach $line(@lines)

  {

  chomp ($line);

  $view_info = `cleartool lsview -region soft1 $line`;

  chomp ($view_info);

  $view_info =~ m/(S+)s+(S+)/;

  $view_tag = $1;

  $view_stg = $2;

  printf " ";

  printf("The old view stg is:%s ",$view_stg);

  system("cleartool rmtag -view -region soft1 $view_tag");

  system("cleartool unregister -view $view_stg");

  $new_view_stg = $view_stg;

  chomp ($new_view_stg);

  if ($new_view_stg =~ m/ccview/)

  {

  $new_view_stg=~ s/\\ccserv1\ccview\views/\\ccserv2\ccview\views/;

  }

  printf ("The new_view_stg is:%s ",$new_view_stg);

  $rc = system("cleartool register -view $new_view_stg");

  if ($rc)

  {

  print LOG_F "$line ";

  }

  system("cleartool mktag -nstart -region soft1 -view -tag $view_tag $new_view_stg");

  printf " ";

  }

  printf ("All Views register successfully! ");

  上面的程序完成了將視圖在 CCSERV1上原有的信息刪除,然后重新注冊(cè)到CCSERV2的功能。這里需要注意的是:如果存在多個(gè)region,需要分別進(jìn)行處理。

  4.3.6 驗(yàn)證遷移后的視圖使用是否正常。

  在客戶端檢查原有的靜態(tài)和動(dòng)態(tài)視圖能否正常使用,可以做一些常見(jiàn)的操作,如checkout、checkin、update和mount(僅對(duì)動(dòng)態(tài)視圖)等。

  4.3.7 檢查無(wú)誤后可以將CCSERV1上的視圖數(shù)據(jù)和視圖存儲(chǔ)路徑予以清除。

  至此,整個(gè)視圖的遷移工作大功告成。

  4.4 視圖的清除

  因?yàn)橛脩魧?duì)視圖處理不當(dāng),在經(jīng)過(guò)一段時(shí)間的運(yùn)作后,會(huì)出現(xiàn)一些垃圾視圖(即已經(jīng)不再使用但沒(méi)有被徹底清除),日積月累會(huì)嚴(yán)重影響 ClearCase 服務(wù)器的性能?梢允褂靡韵旅钣枰詮氐椎那宄

  cleartool rmtag -view $tag;

  cleartool rmview -force -all -uuid $uuid;

  cleartool unregist -view -uuid $uuid;

  以上命令需要的 tag 、 uuid 信息可以通過(guò) lsview 命令獲取,將這些命令進(jìn)行組合,寫成一個(gè)腳本便可以實(shí)現(xiàn)批量清除垃圾視圖。

  5 總結(jié)

  本文對(duì) Base ClearCase中的View進(jìn)行了較為詳細(xì)的介紹(UCM方式基于活動(dòng),故有所差異,本文沒(méi)有提及),希望能對(duì)大家有所啟示。由于View本身牽涉內(nèi)容較多,如有更深層次的需求,可以參考ClearCase自帶的用戶手冊(cè),做進(jìn)一步的研究。

  本文縮略語(yǔ):

  VOB(Versioned Object Base): 版本對(duì)象庫(kù),ClearCase 數(shù)據(jù)的存儲(chǔ)庫(kù),它存儲(chǔ)了處于版本控制下所有的文件、目錄和元數(shù)據(jù)等。

  View: 視圖,它可以選擇所指定任務(wù)的每一個(gè)文件或目錄的適當(dāng)版本,并呈現(xiàn)它們。

  View Server:存儲(chǔ)View數(shù)據(jù)的服務(wù)器。

  MVFS(Multiversioned File System):多版本文件系統(tǒng),它通過(guò)使用標(biāo)準(zhǔn)操作系統(tǒng)協(xié)議增加一個(gè)新文件系統(tǒng)類型,MVFS提供了透明的版本控制機(jī)制。

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