常用链接

统计

最新评论

ClearCase简单使用 (转)

1. When you come to work, the first thing you need to do is: Create a View
   Command:
 

ct mkview -tag <view_tag> <view_storage_path>

   example:

ct mkview -tag alex_test /net/nj2/

   Other Command:

ct lsview                  list all the views reside in the hosts

ct lsview | grep name      list specified view by name

ct rmview -tag <view_tag>  remove an exist view

2. After you create a vew, you need to Set the View to enter it. Then you are able to see the vob content only when you set the view.

ct setview <view_tag>

Example:

ct setview alex_test

Other Commands

ct pwv                     see which view you are currently in

exit                       quit from current view

3. When you are in a view, you need to set the config spec correctly to pick up the right version of element.

ct catcs                   view your config spec

ct edcs                    edit your config spec by vi editor

Other Commands

ct catcs > filename        Copy your config spec to a file

ct setcs filename          Set your config spec from a file

What doew config spec say ? For example:

element* CHECKEDOUT

element* .../ISGcq00123456/LASTEST

element* BLUETOOTH_00.07.00

element* AP_SIPC.01.32.00

element* AP_IB2.00.38_ARM

element* /main/LATEST

Command

element <file path> <version path>

file path: hello.c, *, /vob/su_java/...

version path: Label or Branch

4. Now you may have a task to do. You have a CR assigned, and you know the baseline version.

  • Set config spec to the baseline version.
  • Create branch type associated with the CR.

ct mkbrtype ISGcq00123456

  • Make branch on the baseline version

ct mkbranch ISGcq00123456 hello.c@@/main/2

   Result: hello.c@@/main/ISGcq00123456/0 is created and checked out(a copy of hello.c in the dir was created and you can edited it. If there is not hello.c in the dir, the clearcase would submit a error).

  • Add a rule to pick up this branch in the config spec, just below the CHECKEDOUT rule.

element* .../ISGcq00123456/LATEST

Accessional:

  • Branch type shall have naming convention designed by every project.
  • Don't want check out:

ct mkbranch -nco ISGcq00123456 hello.c@@/main/2

  • Remove a branch from an element:

ct rmbranch hello.c@@/main/ISGcq00123456.

   Make sure no checked out version on this branch

  • Rename a branch name

ct rename brtype:old_name brtype:new_name

   It will apply to all the created branch.

  • Remove a branch type as well as all the related element branch

ct rmtype -rmall brtype:ISGcq00123456

5. After making your CR branch on the file to be changed, check out the version if it hasn't been checked out(checkout后会产生一个自己的私有文件,你可以自己修改,别人看不到,只有这个文件被checkin后才会放到vobs里).

ct co -nc hello.c@@/main/ISGcq00123456/0

    Then, you are able to edit this file. After you finish the change, check in the file to vob.

ct ci -nc hello.c

    The result is, the element will increase one version on the branch:

hello.c@@/main/ISGcq00123456/1

Accessional
  • A checked out version is only in your view. Other engineer can not see it. If you remove that view, you will lost the checked out version.
  • You can undo checkout by:

ct unco hello.c

  • If a checked version has no change, it can't be checked in. You will get an error message like "The file is identical"
  • An unreserved checked out will not block other people check out the same version. Normally, we just use reserved checkout.
  • You can only check out a file on the branch which has mastership role.
6. If your task is to create a new file, you need to do below steps:
  • Make branch on the directory that you will add the file to

ct mkbranch ISGcq00123456 /vob/su_jave/code/src

  • The directory will be automatically checked out. Then make element in this dir.

ct mkelem -nco hello.c

     Create a folder

ct mkelem -eltype directory test

      Dont check it out, because you need to make the CR branch on this file.

ct mkbranch ISGcq00123456 hello.c

  • Check in this directory. Otherwise, other people can not see your new file.

ct ci -nc /vob/su_java/code/src

Accessional

  • We usually only check in the file, but forget to check in the directory. This will cause the file you created can't be stored in the VOB and can't be seen by other people.
  • Go to the top project folder, use below command to list all checked out files and directories int the current dir and sub dir in your view. It will help you check in all elements.

ct lsco -cview -r

7. Now, your task is ongoing. In coding and testing, you may need to merge your file to other version. below example gives the merge steps:

Example: Merge file from hello.c@@/main/branchfrom/5 to hello.c@@/main/branchto/2

ct co -nc hello.c@@/main/branchto/2

ct merge -to hello.c hello.c@@/main/branchfrom/5

     Usually you may also need to compare two versions

ct diff hello.c hello.c hello.c@@/main/branchfrom/5 hello.c@@/main/branchto/2

     Compare this version from the previous version

ct diff -pre hello.c@@/main/branchto/2

Accessional

  • Use this command to list all versions of an element

ct lsvt hello.c

     include the merge info

ct lsvt -merge hello.c

     Remove a merge arrow:

ct rmmerge hello.c@@/main/branchfrom/5 hello.c@@/main/branchto/2

     Dont do actual merge, just draw a merge line

ct merge -ndata hello.c@@/main/branchfrom/5 hello.c@@/main/branchto/2

In what cases we need merge:

  • Integrate with the code developed by someone else.
  • If baseline version has been incresed, need upermage.
  • Merge for release.

8. If you want to remove an un-use version, use the command

ct rmver hello.c@@/main/branchto/2

     Then the version 2 will be removed, but next time the version will increase from 1 to 3.

     If you want to remove a file, you can use remove name command:

ct rmname hello.c

     Be sure to make branch and check out the current directory before rmove it, just like the steps of make element.

     If you want to rename a file, you can use

ct mv old_name new_name

    

     If you want to create an element link, you can use

ct ln source_file file_link

     (checkout current folder like above)

9. Now you may have completed the task of coding, testing, inspection, and prepare to release it. You need to check your developed version is complied with below rules:

  • Must make branch from the baseline version.
  • Must have up merged your branch if the baseline version is not the LATEST version.
  • All the files and directories have no checkou.

10. How to label the version

     Make the label type:

ct mklbtype BLUETOOTH_00.07.00

     Make label on a version:

ct mklabel BLUETOOTH_00.07.00 hello.c@@/main/branchto/2

     Move a label from the old version to a new version:

ct mklabel -replace BLUETOOTH_00.07.00 hello.c@@/main/branchto/3

     Remove label on a version:

ct rmlabel BLUETOOTH_00.07.00 hello.c@@/main/branchto/3

     Remove the label type

ct rmtype lbtype:BLUETOOTH_00.07.00

11. How to search the reuqired version

     Find all files with the version(.../ISGcq00373766/LATEST) and with no label SAMBA_AP_DSL_BLUETOOTH_00.00.07:

ct find /vob/directory -version 'version(.../ISGcq00373766/LATEST)  && !version(SAMBA_AP_DSL_BLUETOOTH_00.00.07)' -print

     Find all files with the version SAMBA_AP_DSL_BLUETOOTH_00.00.07, and then search STRING in all found files:

ct find .-version 'version(SAMBA_AP_DSL_BLUETOOTH_00.00.07)' -exec 'grep STRING $CLEARCASE_PN'

posted on 2008-11-12 14:14 九宝 阅读(1223) 评论(0)  编辑  收藏 所属分类: clearcase


只有注册用户登录后才能发表评论。


网站导航: