clearcase常用命令


 

版本控制工具學習 http://www.itpxpj.com/course.do?method=getAllCourseInFront&classTypeId=21

 


 

1.【ClearCase】config.spec例子 http://www.itpxpj.com/course.do?method=getCourseInFront&classTypeId=21&courseId=104 

  

element * CHECKEDOUT

 

element * /main/dev_branch/LATEST

 

element * /main/LATEST -mkbranch dev_branch

 

element * /main/LATEST

 

 

對應的解釋:

 

第一句,找被Checkout 的版本;

 

第二句,找main 主干下的dev_branch 分支上的最新版本;

 

第三句,找主干上的最新版本;如果元素被Check Out 的話,會觸發在元素的最新版本上創建

 

dev_branch。因為創建元素的分支是對元素的修改,必須要被做Check Out 的時才會觸發。然后會

 

重新對該元素解釋運行Config Spec 的內容。此時視圖將選擇/main/dev_branch 分支上的被Check

 

Out 的版本。如果該分支上被Check Out 的元素版本被Check In 的話,視圖將選擇/main/dev_branch

 

分支上的最新版本,也就是第二句規則的運用結果。(順便提醒一下,dev_branch 的分支類型應該被事先創建)。

  


 

2. ClearCase】工作中常用命令(上) http://www.itpxpj.com/course.do?method=getCourseInFront&classTypeId=21&courseId=110

VOB

查看當前VOB的基本信息和UUID

ct des -l vob: .

 

創建一個vob在/usr/vobstore/下,並打上“/vobs/project3”的tag.

mkvob -tag /vobs/project3 -c "main development sources"  /usr/vobstore/project3.vbs

view

創建和刪除view

創建view:

$ cleartool mkview -tag MY_VIEW  /../ MY_VIEW.vws

設置當前視圖

$ cleartool setview MY_VIEW

刪除view

$ cleartool rmview -tag <view_name>

查看view名字為“XXX”的所有view

$ cleartool lsview | grep XXX

 

各類type

lstype, rmtype 可以查看、刪除 各類type(包含lable/branch/triger等)

 

$ ct man rmtype

 

 type-kind     One of                                                

                                                                      

                attype        Attribute type                           

                                                                      

                brtype        Branch type                             

                                                                      

                eltype        Element type                            

                                                                      

                hltype        Hyperlink type                          

                                                                       

                lbtype        Label type                              

                                                                      

                trtype        Trigger type  

 

Label

創建類型

$cleartool mklbtype -nc label-name (盡量大寫)

 

添加

單個文件

$ct mklabel label-name path                                                                                           

 

$ct mklabel -replace label-name

 

把當前目錄下的所有文件的最新版本上打標簽:

$ct mklabel -recurse -rep label-name -ver /main/LATEST .

 

給所有打上TEST_LABEL標簽的文件打上TEST_LABEL2標簽

cleartool mklabel -replace -version /main/TEST_LABEL TEST_LABEL2 *

 

 

查找當前目錄下版本為/main/LATEST的,並且/main/LATEST上沒有LABEL_1標簽的文件,並且創建人是tom的文件,打上LABEL_1標簽

ct find . -version "{version(/main/LATEST) && ! lbtype(LABEL_1) && created_by(tom)}" -follow -print | xargs cleartool mklabel -rep LABEL_1  

 

移動

$ct mklabel -rep -nc label-name 2.log            

刪除

$cleartool rmlabel label-name 2.log

 

查看

查看某個element版本的具體有哪些標簽

ct desc xbean.xml@@/main/3

 

//查找當前目錄下打上CDU標簽的所有文件

cleartool find . -version "lbtype(CDU)" –print

(find 是遞歸查找)

 

//如果子目錄有link的文件或者文件夾也需要查找,需要加一個參數:-follow

cleartool find . -version "lbtype(CDU)" -print -follow

 

//按照邏輯表達式查找

ct find –version 'version(\main\LATEST) && ! lbtype(REL3)' –exec 'cleartool mklabel –replace REL3 %CLEARCASE_XPN%' 

 

//查找打上TEST_LABEL和TEST_LABEL2標簽的文件

cleartool find . -element 'lbtype_sub(TEST_LABEL) && lbtype_sub(TEST_LABEL2)' -print

Branch

創建分支

mkbrtype -c "comment" branchname

 

 從某個文件的最新版本建立分支

當config.spec初始為:

element * CHECKEDOUT

element * /main/LATEST

執行:

$ ct mkbrtype -c "comment" branch_test

Created branch type "branch_test".

$ct mkbranch -nc branch_test 2.log

再修改config.spec為:

element * CHECKEDOUT

element * .../branch_test/LATEST   (取branch_test 這個branch的最新版本)

element * /main/LATEST

以后再co 2.log文件,就都是在branch_test上操作了

 

從某個文件的某個版本建立分支

分支名為:bugfix

$ ct mkbrtype -c "comment" bugfix

$ ct mkbranch -nc bugfix hello.c@@/main/3

   Created branch "bugfix" from "hello.c" version "/main/3".

   Checked out "hello.c" from version "/main/bugfix/0".

刪除branch

刪除當前目錄的branch (main/sp_main)

ct rmbranch .@@/main/sp_main

 


 

3.【ClearCase】工作中常用命令(下) http://www.itpxpj.com/course.do?method=getCourseInFront&courseId=111

version

1.         查看element的版本樹

lsvtree: Lists version tree of an element

cleartool lsvt preferences.jsp

 

2.         刪除version

刪除version: rmver  (Removes a version from the version tree of an element)

刪除后,該element的后續版本才不會看見,但是前面版本都可以看見;

要徹底從vob刪除,就需要管理員權限,此方法不推薦

 

$ ct lsvt .

.@@/main

.@@/main/1

.@@/main/7

$ ct rmver .@@/main/7

Removing these versions of ".":

  /main/7

Remove versions?  [no] yes

Removed versions of ".".

$ ct lsvt .

.@@/main

.@@/main/1

.@@/main/6

 

$ ct ci -nc .

checked in "." version "/main/8".

所以,刪除一個文件的多個version后,下次version還是依原來刪除前的version進行

 

3.         查看element操作歷史

$ ct lshistory preferences.jsp

 

4.         比較不同version的文件

$ ct diff 1.html@@/main/8 1.html@@/main/9

 

checkin

 

  •  進行checkin

Checkin單個文件

$ct ci -nc xxx.jsp   (-nc就是無注釋)

 

Checkin當前view下的當前目錄下的所有文件(遞歸)

       $ ct lsco -cview -r -s |xargs cleartool ci –nc

 

       查看自己CO了多少文件

ct lsco -cview -avobs

if you want check in all the elements listed in one command, run

ct lsco -cview -avobs | awk -F "\"" "{print \$2}"| xargs -n1 cleartool ci -nc

 

  • 創建提交新文件

1.         單個新文件

make目錄:cleartool mkdir -c comment newdirectory

make文件:cleartool mkelem -c comment newfilename

 

make文件:

create a new file:先co父目錄,再處理下面的文件(比如添加、刪除),和linux目錄權限管理一樣的原理,添加、刪除了父目錄的子文件相當於修改了父目錄的內容

 

$ ct co .

$ cp xxx.sh .

$ ct mkelem -nc xxx.sh

$ cd ../

$ ct lsco -cview -r -s

$ ct lsco -cview -r -s | xargs cleartool ci -nc

$ ls

 

或者使用:

$ct mkelem -nc -master -mkpath xxx.sh

$ct ci

 

      

2.         單個或者多個新文件(遞歸)

遞歸checkin當前目錄下的所有新加的文件

首先,千萬不要co父目錄

$cleartool lsprivate . | xargs cleartool mkelem -nc -master -mkpath

$cleartool lsco -r -s | xargs cleartool ci –nc

cleartool lsco -s | xargs cleartool ci –nc

 

3.         checkin多個文件(遞歸)

Check in 當前目錄

Cleartool checkin .

 

Check in 當前目錄下所有文件.

Cleartool Checkin –nc *.*

 

Check in當前目錄下所有的文件和目錄中的文件

cleartool find . $file -exec ‘cleartool checkin -nc –ide $CLEARCASE_PN’

 

checkout

  • 查看checkout

*  查看當前目錄下co的文件.

   非遞歸:$ ct lscheckout

   遞歸:  $ct lscheckout –r

 

*  查看所有人的所有co文件

       ct lscheckout -avobs

 

*  查看我的所有co文件

   ct lscheckout -avobs -me

  

*  查看我的當前view的所有的co文件

       cleartool lscheckout -cview -me -avobs   

 

*  查看我的當前view的當前目錄下及以下(遞歸)的co文件

       $ ct lsco -cview -r  

       $ ct lsco -cview -r -s     (-s = -short: short顯示)

 

  • 進行checkout

$ct co -nc xxx.jsp   (-nc就是無注釋的方式co)

 

Check out當前目錄下所有文件

Cleartool Checkout –nc *.*

 

Check out當前目錄下所有的文件和目錄中的文件

cleartool find . $file -exec ‘cleartool checkout -nc $CLEARCASE_PN’

 

  • 撤銷checkout

$ct unco -keep filename

 (默認會keep,保留本地自己的文件,會copy一份並另外取個.keep名字)

$ct unco -rm filename

(刪除本地自己的文件)

 

撤銷當前目錄下所有co

$ct lsco -cview -r -s | xargs cleartool unco -rm 

刪除文件

刪除clearcase一個目錄下的文件:

$ ct co .

$ ct rm 1.log  (注:不用checkout 1.log文件必須使用ct rm,如果不加ctrm,只是刪除了你的view的本地文件,沒有對CC的服務器產生影響)

$ ll

total 0

$ ct ci -nc .

 

   當錯誤刪除某個文件file1

   可以使用以下命令還原:

   ct ln .@@/main/versionX/file1 file1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM