應用ClearCase人員的一些基本操作
以下歸納的操作都是ClearCase最基本的操作,每個操作人員都應該熟練的掌握,以提高工作效率。下面給出了圖形界面和命令行模式兩種方式下的操作方法。
http://wenku.baidu.com/link?url=Sf5jBej3ttrdP1HrETi3li2ZMpY5uavHeouJdFfjRNXO4HjIrVF2kUMCcaLQ6yD11DsOrioNxp8_PYKnoS7eiYwf9TvHKBYEiZ5_aCSymG3
Add To Source Control
此操作的目的是將文件系統中的元素放入版本控制庫,作為版本控制元素來管理。圖形界面下,操作是右鍵點擊要添加的元素,選擇add to source contronl即可;命令行命令為mkelem。
² 在命令行模式下,執行mkelem命令時,必須保證要添加為版本控制元素的文件或目錄的上一級目錄已經被checkout出來。並且默認狀態下,執行了mkelem命令后所添加的元素保持checkout狀態。
如:某文件test.txt在目錄1下面 1\test.txt,則在對test.txt文件進行mkelem操作時,必須保證目錄1已經被checkout出來了。
² 在圖形界面下如下圖所示,Checkout after adding to source control選項如果被選中,當添加到版本控制之后,元素保持checkout狀態。
CheckOut
這是編輯ClearCase版本控制元素的最基本方法,每人必須熟練掌握。
CheckOut操作:版本控制元素默認狀態下是read-only的,只有通過此動作才能將元素的狀態修改為可寫的,才能對文件進行編輯。圖形界面右鍵點擊需要checkout的元素,點擊check out…即可;命令行命令為checkout或者co。
CheckOut分成兩種方式Reserved和Unreserved。Reserved方式從字面上理解是保留的checkout,采用此方法進行checkout之后,他擁有首先checkin的權力,如果他沒有ci,其他人沒有權力ci;Unreserved方式是非保留的checkout,采用此方法進行checkout之后,與其他對該元素進行非保留checkout的人具有相同的checkin優先權。同時Reserved和Unreserved方式的checkout可以通過命令進行相互轉化。
² 命令行方式co時,首先提示“Checkout comments for "***"”,需要給出co的注釋,注釋以另起一行的”.”結束。默認情況下進行的checkout是Reserved checkout。
² 圖形方式co時,默認情況下Reserved復選框是被選中的,如果想在元素被其他人以Reserved方式checkout時,仍然checkout則選中第二個復選框Unreserved if already reserved。
![]()

CheckIn
CheckIn操作:用來將元素從可寫狀態轉換成只讀狀態,並形成新的版本。當對元素進行了edit操作之后,需要將元素新的版本保存到版本控制庫中去,而在沒有進行checkin操作之前元素在版本控制庫中是不形成版本的。
對於edit操作可以直接將文件打開修改,也可以用修改好的文件覆蓋已經checkout的文件,然后進行ci操作。
圖形界面在需要checkin的元素上,右鍵點擊Check In…選項即可;命令行命令為checkin或者ci。
²
在圖形界面ci時,當所checkout的版本與上一版本比較起來沒有變化時,cc會自動給出提示信息說明當前版本與上一版本內容相同,不形成版本。

如果明知道兩個版本內容相同還是想形成新的版本,可以在checkin時通過check in even if identicall to previos選項,達到即使與遷移版本內容相同,在checkin時也間里新版本的目的。如下圖
![]()

² 在命令行方式ci時,默認情況下提示輸入注釋:Checkin comments for "test.txt":;如果在checkout時已經輸入了注釋則先給出注釋的內容,然后提示:Checkin comments for "test.txt": ("." to accept default)。
如果需要將與上一版本相同的版本ci,需要添加參數 –identical。
Undo CheckOut
Undo checkout操作:是與checkin操作對應的操作,當進行了edit操作之后,如果覺得所做的修改不需要保存新的版本則使用此操作。
圖形界面的操作,只需要右鍵點擊需要作unco的元素,選擇Undo checkout…即可;在命令行情況下使用命令uncheckout或者unco。
²
圖形界面時:會提示是否保存當前版本的元素,將其保存為.keep文件。如果認為有保存的必要則需要選擇此復選框。

² 命令行時,也會給出如此提示:Save private copy of "11.txt"? [yes];如需保留.keep文件則在unco時應用-keep選項。
查看歷史信息
通過查看歷史信息,了解元素改動情況。圖形界面操作方式是,右鍵點擊需要查看歷史的元素,選擇history選項即可;命令行方式使用命令lshistory。
² 圖形方式界面如下,可以得到修改時間、用戶、文件名稱、事件類型、版本及修改注釋。

² 命令行方式同樣會給出以上信息。
Find CheckOuts
查找所有正在被CheckOut的元素,給出列表。利用此操作可以方便的找出所有沒有ci的元素,為大家的工作提供了方便。此操作在圖形界面一般情況是針對目錄的操作。命令行模式命令為lsco或者lscheckout。
² 圖形界面中,首先給出find標准界面。分別表示目錄選擇,用戶選擇,View選擇。
![]()
![]()

如果選擇包括所有子目錄,包括所有人,和在所有的view中查找則會得出以下結論

² 命令行模式lsco,如需查找所有co的元素需要加參數-all。
查看版本樹(Version Tree)
通過查看版本樹,了解元素的改動情況。更重要的是在版本樹瀏覽界面里可以作一些其他相關的重要操作。圖形界面方式查看版本樹,只需右鍵點擊所需元素選擇Version Tree即可;命令行方式,應用命令lsvtree。下圖列出了在版本樹瀏覽窗口中進行co,ci,unco,比較版本,merge,查看歷史信息,刪除某一版本,將某一版本發送桌面或我的文檔中進行查看…

比較元素的兩個版本
利用比較功能可以得出版本之間的具體區別。
注意:在比較.doc文檔的兩個版本時,這兩個版本的修訂選項必須如下顯示,所有選項都不能選擇

否則就會出現如下錯誤:

² 在圖形界面中,右鍵點擊需要查看版本的元素選擇Compare with Previous Version即可,結果是將當前版本與上一版本進行比較。如需其他方法比較,需要在version tree瀏覽窗口進行比較,選擇相應版本,右鍵,選擇compare,選擇with another version,之后鼠標指針變成准星模樣,選擇需要比較的版本,即可得出相應結果。
以下是比較結果界面:

² 利用命令行進行版本比較需要應用命令diff。如需與上一版本進行比較需要加參數-pre。在命令行方式下,如果兩個版本內容相同,ClearCase將不進行比較。
例如:
cleartool> diff 11.txt@@\main\5 11.txt@@\main\2
********************************
<<< file 1: 11.txt@@\main\5
>>> file 2: 11.txt@@\main\2
********************************
-------------[changed 4]---------------|-------------[changed to 4]------------
why test teszcxcxzcxzCxdfsfafddasfdasf+| why test test +
-|-
查看私有文件
在view中既有版本控制元素,也有一些不需要進行版本控制的私有元素。目錄和文件的類型分別是View_private directory和view_private file。在圖形界面可以直觀的看到文件類型,即可知道哪些是私有文件;在命令行模式下,應用lsprivate命令得出私有文件。
Merge提取
Merge提取是指將integration分支上最新的工作產品與個人工作分支上的工作產品進行合並。
操作步驟如下:
1、
右鍵點擊view,選擇第二行“Merge Manager…”

2、
出現以下界面,選擇Merge to dynamic view,選擇自己的view,點擊next

3、
選擇你要進行Merge的目錄,點擊Add進行添加,之后點擊Next

4、 選擇Where do you want to merge from。第一個選項Select latest from branch:integration,點擊Next

5、 


選項說明,點擊Finishi

6、 查看選擇結果,如果沒有問題,點擊Find

7、 出現以下提示,點擊是:對所有列在8步驟中圖里的工作產品進行merge;點擊否關閉此窗口后自己選擇需要Merge的工作產品

8、
根據上述條件選擇出來的需要Merge的內容,初始條件下Merged和Checkied Out都是No

9、
選擇需要merge的文件,進行Merge

10、
Merge第一步,將merge目標checkout出來,以便存放合並后的內容。寫好注釋,點擊OK

11、 Merge之后的狀態如下圖,merged為yes,Checked Out為Reseved或Unreserved

12、 ![]()
對工作產品進行Checkin

13、 Checkin結束之后的狀態,Merged為Yes,Checked Out為No

Merge提交
Merge提交是指將個人工作分支上的工作產品Merge到integration分支上,具體操作流程與Merge提取相似,分如下步驟
1、 選擇merge manager
2、 選擇Merge to dynamic view(此時選擇integration_view)
3、 選擇你要進行Merge的目錄
4、 選擇Where do you want to merge from。第一個選項Select latest from branch:integration,點擊Next(此時選擇你自己的分支)
5、 進行merge
6、 將merge結果checkin
Snapshot View的Update
² Update view
1、 右鍵點擊snapshot view,選擇update view …

2、 等待進行update,從服務器上面取最新的工作產品。

² Update目錄或VOB中的內容
右鍵點擊目錄或VOB,選擇update

手動合並文件的兩個版本
1、 在版本樹種進行merge,選擇Merge to…,如下圖

2、 選擇merge目的版本,出現以下界面,


![]()

3、 將merge目標版本Checkout
4、
進行圖形界面手工merge,將鼠標指在下圖紅框區域內,會顯示出黃色的注釋條,告訴你鼠標指示的版本

![]()
![]()
![]()
5、 對照版本樹查看所選版本在版本樹中的位置
如上圖中

6、 

利用下圖中紅框中的按鈕解決沖突:箭頭表示查找下一個沖突點,1 2 3表示選擇下面對應的左、中、右三塊工作區的內容,例如:對於某個沖突覺得中間版本的內容是想選擇的內容,則選擇2,選擇之后還可以在中間區域中修改,直至滿意為止。

7、 保存,關閉merge窗口
8、 將merge成果checkin

