常用ClearCase命令 <持续更新>

1.最基本的操作
cleartool co -nc xxx.cpp 检出文件xxx.cpp
cleartool ci -nc xxx.cpp 检入文件 xxx.cpp
//checkin当前目录下所有的文件
cleartool ci -nc `cleartool lsco -s -r -me`
//如果是ucm模式可以用
cleartool ci -nc -cact

2.查看自己总共co了多少文件

cleartool lsp -co 查看当前vobs里有哪些文件被checkout
cleartool lsco -cview -me -avobs  (cview是当前view的意思,avobs是all vob的意思)

 

3.新增目录和文件
(注意新增文件和目录,先要check co 父目录,添加成功后,再将父目录check in。)
cleartool mkdir -nc new_dir 新增一个目录 (由于mkdir没有-ci的选项,所以如果你提前已经建了私有同名目录,需要mv到其他地方,否则会报文件夹已存在。)
cleartool mkelem -nc new_file.cpp 新增一个文件
cleartool mkelem –nc –ci new_file.cpp 将已经存在于视图的文件添加到源码控制 (我们经常会先建一个私有文件,编译调试过了,才想起要加入到vobs里,如果不带-ci选项会报文件已存在,-ci会把当前同名文件checkin到vobs中)

注意有时候在mkelem的时候,发现其实vob里已经有了同名的文件,导致创建失败,这时候你可以用到另一个命令 cleartool ln

cleartool ln `pwd`@@/main/<branch>/<node num>/* .

 

4.放弃co某个文件
cleartool unco -keep file.cpp 保留当前所改动的文件
cleartool unco -rm   file.cpp 删除当前所改动的文件

5.比较文件不同
cleartool diff file.cpp file.cpp@@/main/xxxx_path/LATEST 比较当前分支最新版本和指定分支最新版本的区别
//查看版本历史
cleartool lsvtree file.cpp
//合并
Cleartool merge -to file.cpp file.cpp@@/main/xxxx_path/LATESTfile.cpp@@/main/LATEST 将指定分支目录下的file.cpp和主干下的file.cpp进行合并并生成为file.cpp文件名的文件

在UCM模式下,合并activity

cleartool findmerge <activity_name>@<pvob> -fcsets -gm -nc -merge

 

6.标签相关
//新建标签
cleartool mklbtype -nc TEST_LABEL
//给文件打标签
cleartool mklabel -r TEST_LABEL file.cpp
//给目录打标签
cleartool mklabel -rep -rec LABEL /vobs/path

//删除标签
cleartool rmtype lbtype:TEST_LABEL
//给所有打上TEST_LABEL标签的文件打上TEST_LABEL2标签
cleartool mklabel -replace -version /main/TEST_LABEL TEST_LABEL2 *
//查找打上TEST_LABEL标签的所有文件
cleartool find . -version "lbtype(TEST_LABEL)" -print
//查找打上TEST_LABEL和TEST_LABEL2标签的文件
cleartool find . -element 'lbtype_sub(TEST_LABEL) && lbtype_sub(TEST_LABEL2)' -print
//查找label是否存在
 cleartool lstype -kind lbtype | grep

7.批量文件导入clearcase
clearfsimport -nsetevent -recurse  source-name target-VOB-directory
其中当你不是vob admin的时候,需要加-nsetevent选项
source-name可以是文件,也可以是目录,但它和target-VOB-directory不能是同一个目录
-preview 可选,这个选项可以对你导入的所有element进行预览,并不会实际做出导入动作

8.删除视图
rmview -tag viewName -force 

9.查询某一天的修改记录
cleartool lshis -r -since 07-dec

10. 创建视图
cleartool mkview –tag viewname  /ccvob/views/viewname.vws

11.查找目录下所有文件的版本信息,可以结合昨天的结果,找出有那些文件改动。注意要带有-cview,这条命令只会检测config-spec中指定的branch上的改动。
cleartool find /vobs/$sub -cview -type f -print | grep -v "lost+found" 2>&1

用这个也不错,不过需要知道branch,和你需要检测的目录:/usr/atria/bin/cleartool lshistory -all -since `date -u +%F` -fmt '\"%Nd\" \"%u\" \"%En\" \"%Vn\" \"%e\" \"%o\" \n%c\n' -branch brtype:main -nco /vobs/path1 /vobs/path2 ...

12.增加view的缓存,提高clearmake的编译效益。
cleartool chview -cachesize 100m -nshareable_dos <view_name>

13.每次服务器重启后,都需要注册一下view,否则不能通过 /view/viewname/vobs/ 来访问文件
cleartool setview viewname 或 cleartool startview viewname

14.查找vobs下所有在某个branch上的代码
cleartool find  -avobs -version "brtype(yourbranchname)" -print 2>/dev/null

15.修改完代码后,想跟以前版本比较,看看有哪些改动
ct diff -g -pre filename
-g 是用图形化浏览,如果没有X图形环境,就不能使用该选项了。

16.比较两个baseline之间,有哪些文件改动
ct diffbl -versions [baseline1] [baseline2]

17 创建一个child stream
cleartool mkstream -in parent_stream@/vobs/xxxx_pvob child_stream@/vobs/xxxx_pvob

18.创建一个view,并与stream关联
ct mkview -stream streamname@/vobs/xxxx_pvob -tag <viewname> -stgloc -auto

19.创建baseline
cleartool mkbl -view <viewname> -component xxxx_comp@/vobs/xxxx_pvob -incremental <BASELINE NAME>

20.检查baseline是否创建成功
cleartool lsbl -stream <stream name>@/vobs/xxxx_pvob -fmt '%[name]p %[component]p %[title]p\n'

21.设置stream的recommended baseline
cleartool chstream -rec <RECOMMENDED BASELINE NAME>@/vobs/xxxx_pvob <stream name>@/vobs/xxxx_pvob

22. UCM模式下rebase recommend baseline

cleartool rebase -rec -comp && cleartool setcs -stream (每次rebase完,最好要setcs -stream同步一下,不然可能有些新增文件会找不到)


————————————————————————————————————————————————————————
Following is CC UCM Practice:

#!/bin/bash
read -p "please enter your CSL (rnctest): " csl
csl=${csl:-rnctest}
csl_upper=$(echo $csl | tr a-z A-Z)
echo "CSL:${csl}" > /tmp/$csl
read -p "please enter your CIL (TEST RNC): " cil
cil=${cil:-'TEST RNC'}
echo "CIL:${cil}" >> /tmp/$csl
read -p "please enter your UPI (CV00000000): " upi
upi=${upi:-CV0000000}
echo "UPI:${upi}" >> /tmp/$csl
read -p "please enter your Email: " email
email=${email:-'xxxxxxx@xxxxxx.com.cn'}
echo "EMAIL:${email}" >> /tmp/$csl

prj_int_stream='tlte_tla1.0_integration@/vobs/tlte_pvob'
int_stream=${csl}_tlte_tla1.0@/vobs/tlte_pvob
dev_stream=${csl}_tlte_tla1.0_dev@/vobs/tlte_pvob
int_view_tag=${csl}_tlte_tla1.0
dev_view_tag=${csl}_tlte_tla1.0_dev
int_view_storage_pname=/view_store/$int_view_tag.vws
dev_view_storage_pname=/view_store/$dev_view_tag.vws
date=$(date +%Y%m%d)

:<<P1
Create your own integration stream (<csl>_tlte_tla1.0@/vobs/tlte_pvob)  and Develop stream (<csl>_tlte_tla1.0_dev@/vobs/tlte_pvob )
under the project integration stream( tlte_tla1.0_integration@/vobs/tlte_pvob.)
It should looks like this:
RootFolder                     folder     "Root folder"
  tlte_tla1.0                  project   
    *tlte_tla1.0_integration   stream    
      <csl>_tlte_tla1.0      stream    
        <csl>_tlte_tla1.0_dev stream    
P1
echo "===  mkstream ==="
cleartool mkstream -in $prj_int_stream ${int_stream}
cleartool mkstream -in ${int_stream} ${dev_stream}

:<<P2
3.	Create a view for your stream.
View-tag:<csl>_tlte_tla1.0  
Hpath & gpath :/view_store/<csl>_tlte_tla1.0.vws
View-tag:<csl>_tlte_tla1.0_dev 
Hpath & gpath :/view_store/<csl>_tlte_tla1.0_dev.vws
P2
echo "===  mkview ==="
echo ">>>> cleartool mkview -tag $int_view_tag -stream $int_stream $int_view_storage_pname"
cleartool mkview -tag $int_view_tag -stream $int_stream $int_view_storage_pname
echo ">>>> cleartool mkview -tag $dev_view_tag -stream $dev_stream $dev_view_storage_pname"
cleartool mkview -tag $dev_view_tag -stream $dev_stream $dev_view_storage_pname

:<<P3
Create a new element on your Dev stream.
(PS:please using view:<csl>_tlte_tla1.0_dev)
The new element:
/vobs/tlte_vob2/LTE_user/<csl>
And add your information in the file, such as ->

CSL:rnctest
CIL:TEST RNC
UPI:CV00000000
Mail:xxxxxxx@xxx.com.cn
P3
echo "=== mkelem ==="
cleartool setview $dev_view_tag <<CT
echo ">>> uts rebase-latest"
uts rebase-latest
echo ">>> cleartool rebase -comp"
cleartool rebase -comp
echo ">>> cd /vobs/tlte_vob2/LTE_user/"
cd /vobs/tlte_vob2/LTE_user/
echo ">>> cleartool mkact -force"
cleartool mkact -force
echo ">>> cleartool co -nc ."
cleartool co -nc .
echo ">>> cleartool mkelem -eltype text_file -nc ${csl}"
cleartool mkelem -eltype text_file -nc ${csl}
echo ">>> mv /tmp/$csl ."
mv /tmp/$csl .
echo ">>> cleartool ci -nc -cact"
cleartool ci -nc -cact
CT

:<<P4
Deliver the change to your integration stream ,and complete the deliver.
And Make sure you can find the new element on your integration stream.
P4
echo "=== deliver ==="
cleartool setview  $dev_view_tag <<CT
echo "cleartool deliver -force"
cleartool deliver -force
echo "cleartool deliver -complete -force"
cleartool deliver -complete -force
CT

:<<P5
After step 5.Create a new incremental baseline for component(LTE_PROJ@/vobs/tlte_pvob) on your integration stream.
The name of baseline is :BL_<DATE>_<CSL>_INT(eg:BL_20090410_FFS_INT)
And set the new baseline as your integration stream’s recommended baselines.
P5
echo "=== mkbl ==="
cleartool setview $int_view_tag <<CT
cleartool mkbl -nc -incr -component LTE_PROJ@/vobs/tlte_pvob BL_${date}_${csl_upper}_INT 
cleartool chstream -rec BL_${date}_${csl_upper}_INT@/vobs/tlte_pvob ${int_stream}
CT
cleartool setview -exec "cleartool lsstream -l" $int_view_tag

:<<P6
Rebase the new baseline on your dev stream and complete it..
Then ,the foundation baselines of your dev stream will be  
BL_<DATE>_<CSL>_INT(eg:BL_20090410_FFS_INT)
P6
echo "=== rebase ==="
cleartool setview -exec "cleartool rebase -rec -comp" $dev_view_tag
cleartool setview -exec "cleartool lsstream -l" $dev_view_tag
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值