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:-'[email protected]'} 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:[email protected] 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