clearcase Commands

来源:互联网 发布:淘宝双11不发货 编辑:程序博客网 时间:2024/06/06 05:39

目录(?)[+]

  • Configure user aliases:File: $HOME/.bashrc
        alias ct=/usr/atria/bin/cleartool    alias sv='/usr/atria/bin/cleartool setview'    umask 022    
    File: $HOME/.cshrc
        alias ct /usr/atria/bin/cleartool    alias sv '/usr/atria/bin/cleartool setview'    umask 022    
    This umask will set the default privileges on new files and direcotries. Default protection will be set so that the user may write data but others can read.
  • Commands:ClearCase CommandDescriptionct -verDisplay Clearcase, cleartool, db_server and VOB database schema version.ct lsvobList vob mount table:
    * /vob/VOB-NAME.vbt       /hosts/host-name/r1vob/vobs/vobstore/VOB-NAME.vbs public* /vob/practice_vob.vbt  /hosts/host-name/view-name/Vobs/vobstore/practice_vob.vbs public
    ct dump element-or-DOPrint internal Clearcase info.ct lsviewList all views:
      millesc_view   /hosts/host-name/view-name/Views/millesc_view.vws* user-name       /hosts/host-name/view-name/Views/reg_view.vws
    ct lsview view-tagList view path.ct mktag -view -tag dynamic-view-name -nstart /hosts/node-name/home/cleardata/views/dynamic-view-name
    or
    ct mktag -vob vob-tag ...Create a view-tag or VOB-tag.ct mkview -tag user1_view -stgloc viewstoreCreate a new view in "viewstore" Clearcase server view mount point (see YoLinuxclient orserver installation tutorial).
    List view storage locations: ct lsstglocct mkview -tag tmpA_view /hosts/node-name/home/cleardata/views/tmpA_viewCreate a new view.ct setview user-name_viewSet current view to user-name_view.ct startview common_viewSet current view to common_view without starting a Clearcase shell environent. It allows one to view (only) the files. Path:/view/common_view/vob/vob-name/...ct endview common_view
    ct endview -server user-name_viewDeactivate a Clearcase view. (First exit view)
    Useful if you get stale NFS handles.ct rmview -tag temp_view
    or
    ct rmview temp_view
    Remove view temp_view.cleartool setview username_view
    sv user-name_view
    Set Clearcase view. See alias defined above.ct pwvPrint working view/current view:
    Working directory view: username_viewSet view: username_view
    echo $CLEARCASE_ROOTPrint current view path.ct ls -l
    ct ls -vob_only
    Using current view, show files, private files, file version and rule.
    -vob_only: List elements and not derived objects
    Format:
    ...version              file.ext@@/main/2       Rule: element */main/LATESTdirectory version    Directoy-name@@/main/2  Rule: element * /main/LATESTview private object  file2.c...
    ct lstype -kind lbtype -list labelsList labelsct lsvtree -all file-name.extList file version label and build label: (version tree)
    file-name.ext@@/mainfile-name.ext@@/main/0file-name.ext@@/main/1 (BUILD_1_0)file-name.ext@@/main/2 (BUILD_1_1)
    ct lsvtree -all pref*List file version label and build label for files beginning with "pref"ct lshistory [all] file-or-directory
    ct lshistory file-nameList file or directory version history.
    List event rocords for a given file.ct chevent -c 'new-comment-goes-here' -replace -event event-id
    ct chevent -c 'new-comment-goes-here' -replace -lbtype label
    Change the comment on a version of an element.
    Lookup event id: ct lsh -event file-or-element
    Change the comment on a label.
    ct lsco
    ct lsco -r
    ct lsco -avobs -me
    ct lsco -avobs -cview
    List all checked out files in current directory.
    Flag "-r" recusivly looks in sub directories.
    List all files checked out to all views.
    List checkouts in view.ct lscheckout -l
    ct lsco -l
    ct lsco -recursive -me -cview
    List checked out files.
    (same)
    List files in current directory and subdirectories checked out to you in current view. Omit-cview tag to get all.ct catcr file-nameList configuration record for a file.ct find ./ -branch 'brtype(branch-name)' -print
    ct find ./ -version(main/LATEST) && \! version(LABEL_X)' -print

    ct find -avobs -nxname -element 'brtype(view_name)' -printList files in branch with search name or attribute.
    List files with label "LATEST" but not LABEL_X.ct lsprivate
    ct lsp -co
    List all private files in current view. View privatefiles are files residing in the Clearcase filesystem but not under thecontrol of Clearcase. i.e. object files as a result of a compile. Maynot be viewable by others.
    List files checked out to current view.ct mklbtype -nc LABEL_NAME
    ct mklbtype -c "comment" LABEL_NAME
    Create a label to be used later.ct lstype -kind lbtype -short | sortList labels.ct describe -l file.extDescribe object in VOB. Lists branch and version of file and configspec used in view.ct describe file-or-directoryList file or directory information.ct describe -long element:file-or-directoryList file or directory information.ct describe -long vob:/vobList vob information.ct mklabel LABEL_NAME file-name.ext
    ct mklabel -r LABEL_NAME
    Apply label to a file.
    Label elements in directory tree.ct mklabel -replace NEW_LABEL_NAME file-name.ext@@/main/4Apply label to a newer version of the file.ct rmtype -rmall -force lbtype:LABEL_NAME
    ct rmtype -lbtype -rmall LABEL_NAME
    Remove a label of the name given. The option "-rmall"causes the removal of all instances of the label on all files /directories.Remove label type and all occurrences of the label.ct rmtype lbtype:LABEL_NAMERemove label from Clearcase. It will not be removed iflabel has been applied. Use option "-rmall" to remove label and allinstances of its application.ct rmtype -rmall -brtype branch-typeRemove branch and all files / directories in branch from Clearcase. Data disposed in "lost-found".ct find -avobs -version "lbtype (Build-Label)" -print
    ct find . -name '*.[hc]' -element 'lbtype_sub(LABEL_NAME)' -print
    Print all files and file versions going into build specified.
    list all .h and .c files whith the given label.ct co -nc file-nameCheck-Out file (RCS command) -No Commentct mkdir directory-nameCreate a directory. Checkout parent directory first.ct ln -s source-directory-name local-directory-nameCreate a symbolic link to a directory. Checkout parent directory first.ct mkelem -ci -nc filenameAdd file to Clearcase control.ct rmelem filenameRemove file from Clearcase control. Allhistory and knowledge of the element is completely removed. Bycontrast, the "ct rm" command will remove the file and not the historyand the directory must be checked out in order to make this change.ct rmelem -rm filenameRemove file from Clearcase control and remove private view file.ct rmelem directory-name/*Remove directory, revision history and its contents from Clearcase control.ct rmver filename@@/main/LATEST
    or
    ct rmver filename
    or
    ct rmver filename@@/main/22
    or remove specifed version on main branch:
    ct rmver -force -xlabel -ver /main/22 file-or-element-nameRemove latest version checked in of the filefrom Clearcase. Second example removes version 22 from the Clearcasechange management system. Previous versions will be available from thearchive.ct rm filenameRemove file from Clearcase view. First perform a checkout("ct co") of the file and directory. Past versions will be availablefrom the archive although not visible in current view. Safer than "ctrmelem" which removes all knowledge of the file old and new.ct reserve file-nameLock file. Convert unreserved checkout to reserved.ct unco file-name
    ct unco -rm file-name
    ct uncheckout file-name
    UN-Check-Out file. Cancel a checkout of a file.
    Cancel a checkout of a file and remove file which was checked out. Notremoved from Clearcase, just view private the checked out file isdeleted/cleaned up.ct co -unr -nc file-nameCheckout file even though file is checked out by another. Checkout "unreserved", must be merged at a later time.ct checkout -unreserved file-nameNot locked. Checkout to read, print, etc. Same as above command.ct ci file-nameCheck-In file. (also ct checkin file-name) Enter comment,enter "." as sole character on line and enter.ct diff -gra -pre file-name &
    ct diff -pred file-name
    ct xdiff -pred file-name
    Graphical Diff/Merge tool.
    Clearcase diff between current file and predecessor.
    X-windows diff with predecessor.ct mv file-name_A file-name_BRename a file. Be sure to checkout theparent directory first. If moving file to a new directory, check outthe target directory as well.ct protect -r -chmod 775 directory-or-file-nameSet directory/file/element protection.Configspec commands ct catcs

    ct catcs -tag view_tag

    Print rules of current view (configspec):
    element * CHECKEDOUTelement * /main/LATEST

    Look at the configspec associated with another view.ct edcsEdit current rules of view (config spec):
    Change from:
    element * CHECKEDOUTelement * /main/LATEST
    To:
    element * Build-Labelelement -directory * /main/Latest
    Close vi: wq
    Set config spec for view "username_view"? [yes]ct setcs -default
    ct setcs -cur
    Reset to default view rules.
    Re-evaluate current configspec.ct update -add_loadrulesUpdates elemets in snapshot view. GUI tool. Reevaluatesconfig spec and reselects VOB elements to show. The option"-add_loadrules" allows you to load rules to your config spec and loadelements which satisfy the rules.Help and Information commands ct man clearcase-command
    ct man env_ccase
    Man page for Clearcase command.
    List Clearcase environment variables.ct apropos search-wordList commands and man page summaries for related Clearcase command.ct help
    ct help clearcase-commandHelp facility (simple). Lists possible command arguments.Tree/Branch commands ct lstype -kind brtype
    ct lstype -kind brtype -invob /vob/vob-name
    List all branches.
    List all branches in the vob specified.ct find -avobs -version 'brtype(branch-type)' -printFind all files of the specified branch name in all mounted VOB's. Find branch name with thect lstype command..ct lsvtree -all *
    ct lsvtree file-name
    ct lsvtree -g file-name
    List version trees (labels and branches) of files (even those without labels or branches).
    List all branches of specified file.
    Launch GUI display and show version tree (labels and branches) for a given file.
    ([Potential Pitfall]: You may have to issue the commandexport LANG=C prior to launching GUI.)ct chtypeChange element type or rename branch.ct mkbranch
    ct mkbranch -nc branch-name file-to-branch.cppCreate a new branch in version tree. Use the command mkbrtypeto create the branch type (name) first. This command also checks outthe file. The config spec needs to include this branch so file can beviewed.ct rmbranchRemove a branch in version tree.ct mkbrtype
    mkbrtype -c "Comment goes here" branch_nameCreate a new branch type object.ct mergeMerge changes/differences of a file from another branch.ct findmerge
    ct findmerge ./ -ftag VIEW-TAG -print
    Determines whether a merge is required for a file in your view.
    Find files in current directory tree which need to be merged. Use the describe command to see if branch has been merged. If so it wil be stated as such.Derived Objects commands ct lsdo -lList derived objects.ct rmdoRemove a derived object.ct winkin *.o *.a executablesWink-in a derived object.Admin commands clearexport_ffile -r directory-nameCreate file cvt_data which is the result of a recursive export of files from given directory name..clearlicense List number of allowable client connections and list who is holding a license.clearlicense -rel userRelease license from user who is holding a license.getcache
    ct getcache -mvfs
    Display Clearcase view or MVFS cache parameters.
    Troubleshoot by listing cache misses (Cache misses are bad). Perform this command on the server itself.getlogExamine Clearcase log files.hostinfoDisplay configuration data for a Clearcase host.lock
    • ct lock vob:/vob/project
    • ct lock -brtype -obsolete branch-type
    • ct lock lbtype:LABEL_NAME
    • ct lock file-name.cpp
    • ct lock -nusers user1, user2 brtype:branchX
    Command to lock a VOB, element, branch, type object or storage pool.
    • Lock vob for read-only access.Disable write, create, delete, modify
    • Hide branch permanently.
    • Lock code with given label.
    • Lock a file from use.
    • Lock all users except user1 and user2 on branchX
    unlock
    ct unlock -brtype branch-type
    Unlock a VOB object.lslockList locks.lsclientsList client list for lisence or registry host server.lsreplicaList replicas of a VOB.mkpoolCreate or modify VOB storage pool.rmpoolRemove a storage pool from a VOB.lspoolList storage pools.chpoolChange the storage pool to which an element is assigned.mkregionRegister a new Clearcase network region.rmregionUnregister a Clearcase network region.lsregionList Clearcase network region.mktriggerAttach a trigger to an element.rmtriggerRemove trigger from an element.mktrtypeCreate a trigger object.mkvob
    ct mkvob -tag VOB-tag -c "comment" /vobpath
    Create and register a versioned object base.rmvob
    ct rmvob /vobpath
    Remove a VOB.lsvobList of mounted VOBs.checkvobFix inconsistancies between VOB database and storage pools.protectvobChange owner or group of a VOB.reformatvobUpdate the format of a VOB. Use command "ct -ver" to find the current VOB database schema version.rmtagRemove a VOB tag from a storage registry.complete_migrationTake VOB out of migration mode.mount
    ct mount VOB-tag
    Activate a VOB.unmount
    ct umount VOB-tag
    Deactivate a VOB.
    ("ct describe -vob" to show VOB info/owner)registerCreate an entry in the VOB/view storage registry.unregisterRemove a VOB/view from storage registry.relocateMove elements and directory trees from one VOB to another.renameAsign a new name to a Clearcase object (i.e. pool, replica, label). Use mv to change the name of a file or directory.setcache
    ct setcache -view -host -cachesize 1024k
    ct setcache -view -site -cachesize 2m
    ct setcache -view -cachesize 5m view_tag
    Set Clearcase view or MVFS cache parameters.
    Set cache size for all views on server to 1024 Kb.
    Set cache size for all views site-wide to 2 Mb.
    set cache size for a single specified view.
    View with ct lssite -inquiremvfscacheControls and monitors MVFS caches (dynamic views only).ct lssite -inquireList site-wide properties in the site config registry.setsiteSets or unsets site-wide properties in the site config registry.
    • View cache size
    • defaults for Windows clients
    • defaults for chechin and checkout preserve
    spaceReport VOB disk space usage.
  • GUI tools:
    /usr/atria/bin/xclearcase &
    /usr/atria/bin/xcleardiff &
    /usr/atria/bin/xlsvtree & (Same as xclearcase -vtree)
    [Potential Pitfall]: You may have to issue the commandexport LANG=C prior to launching GUI.



Free Information Technology Magazines and Document Downloads
TradePub link image


   
   Bookmark and Share

Advertisements



Jobs
Software Engineer
Minnetonka, MN
Jobs2web
Software Configuration/Implementation...
Conyers, GA
The Royak Group Inc.
Lead Java Software Engineer
Chicago, IL
Request Technology-Craig Johnson
Infrastructure Specialist
Houston, TX
Frontline Source Group
C++ Programmers - Excellent Opportunity
United Kingdom
Interactive Selection
System and Storage Administrator
Atlanta, GA
Synergis
Principal Software Development...
London, Greater London, United Kingdom
Microsoft
Sr. Director Technology: .Net...
Jupiter, FL
Red Spot Interactive
Software Tester
Cornelius, NC
Asset Management Technologies, Inc.
Nice Call Recording System Analyst
Lincolnshire, IL
Request Technology
Post a Job >
Powered by JobThread

Environment Configuration:

Get shell config file sample from node-name:/home/vobadm/config/.bashrc, .cshrc, .kshrc.

Sample $HOME/.bashrc

export CLEARCASE=/usr/atria...export PATH=$CLEARCASE/bin:$PATH...alias ct='cleartool'alias sv='cleartool setview'alias svg='cleartool setview username_view'...MACH=`uname -n`ID=`/usr/bin/id | /usr/bin/sed -e 's/^uid=[0-9]*(//' -e 's/).*$//'`PS1='$MACH:($ID)$PWD> 'if [ $PS1 ]then  if [ $CLEARCASE_ROOT ]  then    export PS1='[`basename $CLEARCASE_ROOT`]\h:(\u)\W> '  fifi

Sample Unix Clearcase sessions:
  • Make changes to a file:
       node-name:(username)/home/username> cleartool setview username_view   node-name:(username)/home/username> cd /vob/vob-name/src/sub-directory   [username_view]node-name:(username)sub-directory> ct co -nc filename.cpp     --- edit file ---   [username_view]node-name:(username)Directory-name ct ci filename.cpp   Add comments here.   .   exit                
    Comments terminated with a dot (.). Use exit to get out of Clearcase view and return to Unix shell.
  • Add new file to Clearcase control:
       [username_view]node-name:(username)sub-directory> ct co -nc .   [username_view]node-name:(username)sub-directory> cp /..../new-file ./   [username_view]node-name:(username)sub-directory> ct mkelem -ci -nc new-file   [username_view]node-name:(username)sub-directory> ct ci -nc .
    Checkout directory (.), copy file and add it to clearcase control. Thencheck-in directory. Directory needed updating to reflect change to itscontents.Note that new files added to the directory can not be viewed by othersuntil the directory is checked in.Example of adding all files to Clearcase control: ct mkelem -ci -nc *
  • Add new Directory to Clearcase control:
       [username_view]node-name:(username)sub-directory> ct co -nc .   [username_view]node-name:(username)sub-directory> ct mkdir DIRECTORY-NAME   [username_view]node-name:(username)sub-directory> ct ci -nc .   ...   Add files to directory.   ...   [username_view]node-name:(username)sub-directory> ct ci -nc DIRECTORY-NAME                
  • Clearcase Labels:
       [username_view]node-name:(username)sub-directory> ct mklbtype -nc RELEASE_NAME_#.#.#      (or: ct mklbtype -ordinary RELEASE_NAME_#.#.#)   [username_view]node-name:(username)sub-directory> ct mklabel -recurse RELEASE_NAME_#.#.# . 
    First command creates the label. The second applies the label to thecurrent directory "." recursively on down the directory structure.Another example:ct mklabel -recurse -follow -nc RELEASE_NAME_#.#.# directory-name
    Where the option "-follow" allows mklabel to follow symbolic links.
    Note: Must perform the command from a directory within the VOB.

    Update a file and apply the existing label to the new file:

       [username_view]node-name:(username)sub-directory> ct mklabel -replace -nc RELEASE_NAME_#.#.# file-name@@/main/4
    Move label from version 3 and now apply it to version 4.

    Remove old label:

       [username_view]node-name:(username)sub-directory> ct rmtype -rmall lbtype:OLD_RELEASE_NAME_#.#.#

    List all labels:

       [username_view]node-name:(username)sub-directory> ct lstype -kind lbtype   OR   [username_view]node-name:(username)sub-directory> ct lstype -kind lbtype -short | sort   OR   [username_view]node-name:(username)sub-directory> ct lstype -kind lbtype -short | grep -i api | sort
    Second version lists all "API" labels.

    List all labels on a file:

       [username_view]node-name:(username)sub-directory> ct lsvtree -all file-name                
    Second command does not quite work (??)

    Label formats: RELEASE_NAME_#.#.#

    Default labels created by Clearcase:

    • BACKSTOP: No changes allowed. No new versions allowed when label applied. Also see "lock" command.
    • CHECKEDOUT: Currently checked out versions.
    • LATEST: Latest version of a branch.
  • Create a view:

    To find the directory used for storing views issue the following command:
       [prompt]> ct lsview     greg_view            /net/hostname/views/viewstore/greg_view.vws     steve_view           /net/hostname/views/viewstore/steve_view.vws   ...
    Create view from views directory. Files there are viewname.vws
       [prompt]> cd /net/hostname/views/viewstore/   [prompt]> ct mkview -tag dave_view  ./dave_view.vws   [prompt]> ct lsview | grep dave_view     dave_view            /net/hostname/views/viewstore/dave_view.vws   [prompt]> ct describe -l /net/hostname/views/viewstore/dave_view.vws   ...
  • Move a view:
    Assuming the move is on a single server and there are no checked out files.Stop viewserver.
    cd /net/hostname/views/viewstore/find view-tag.vws | cpio -pmd /destination viewstorect rmtag -view -all view-tagct unregister -view /net/hostname/views/viewstore/view-tag.vwsmv view-tag.vws view-tag.vws-backupct register -view /destination viewstore/view-tag.vwsct mktag -view -tag view-tag /destination viewstore/view-tag.vwsct startview view-tagrm view-tag.vws-backup
  • Clearcase Clearmake:
       [username_view]node-name:(username)sub-directory> ct lsco   [username_view]node-name:(username)sub-directory> clearmake -C gnu -f Makefile   [username_view]node-name:(username)sub-directory> ct catcr file.o
    One may also set the environment variable: export CCASE_MAKE_COMPAT=gnu
    Check first if there are any files checked out. Run makefile. List configuration record.The advantage of clearmake is that derived objects (object files generated by compiling source, hence derived from the source) are stored with extended names. i.e.file-name.o@@26Feb.14:28:9621

View default group on Windows PC:

  • Open a DOS command prompt window.
  • cd Program Files\Rational\Clearcase\etc\utils
  • Execute the "creds" command
  • Read the "Primary Group" domain.

PC Configspec: right click on XX: drive + clearcase + properties.

Clearcase explorer: C:\Program Files\Rational\ClearCase\bin\clearexplorer.exe


Clearcase find command:

Tag "-all" refers to all files in VOB.

  • Find all files with given label in the VOB:
    ct find -all -type file -version 'lbtype(LABEL-NAME)' -print
  • Find all new or changed files since that with a specified label:
    ct find -all version '\!lbtype(LABEL-NAME) && version(/main/LATEST)' -print
  • Find all files at the end of a branch in current directory:
    ct find ./ -version 'version(.../branch-name/LATEST)' -print

Explanation of Clearcase views and file structure within a view:

Views are required in order to use Clearcase. A unique view assigned to a userwill:

  • allow a developer access to the VOB data (source code storage)
  • provide a workspace are where users can privately modify VOB data withoutdisturbing the view of the VOB data held by other developers. Changes are only accessible by others when a file is checked into the VOB from the users private space.

There are three types of views:

  • Snapshot view: Changes and updates by others are not available to a snapshot view until a new "snapshot" is taken.
  • Web view: accessible from Clearcase Web interface. Similar to a snapshot view.
  • Dynamic view: access to all versions of VOB elements and view privateobjects as they are checked into the VOB.

Directory Structure within view:

The Clearcase view and versioning system is based on a directory structure beneath what at first appears to be a standard set of files in a directory structure.

Example: (set view first: ct setview xxxxxx)

Clearcase presentationUnix presentationct ls
    filename1.ext@@/main/3                        Rule: /main/LATEST    filename2.ext@@/main/6                        Rule: /main/LATEST    
ls
    filename1.ext    filename2.ext    
Note that there are three versions of the file in the main branch.

Actual Directory path representation:

filename1.ext@@/              - Actually a directory name not a file name               LABEL-1       - Actualy a file with the full contents.               LABEL-2               main/         - Directory of main branch.                    LABEL-1  - Actual file with full contents of file.                    LABEL-2  - Actual file with full contents of file.                    0        - Actual file containing version zero.                    1        - Actual file containing version 1                    2        - Actual file containing version 2                    3        - Actual file containing version 3                    LATEST   - Actual file with full contents of file.                
Note:
  • Clearcase stores the full contents of the file saved and not a diff between versions like RCS or SCCS which builds versions of the file when neccessary.
  • The file "3" and "LATEST" are identical.
        cd filename.ext@@/main    diff 3 LATEST    
    This will show no change between the files.
  • Search all archived files for a string:
    find filename.ext@@ -print grep 'wordToFind' {} \;
This knowledge can facilitate searches in previous versions of source code.

Relationship between views and directory structure:

Each view will have the directory structure described above within its view.
/view/...                             - View root directory/view/view-name1/                bin/...               - Entire OS file system viewed from here for view-name1                etc/..                .../...                vob/vob-name/src/filename1.ext   - Unix presentation or filename1.ext@@ for "ct ls"                            .../...   - Contents of Clearcase VOB/view/view-name2/                bin/...               - Entire OS file system viewed from here for view-name1                etc/..                .../...                vob/vob-name/src/filename1.ext                            .../...   - Contents of Clearcase VOB                
  • This path /view/... is viewable by the regular UNIX user, with or without setting the view.
  • When you set your view ("ct setview view-name1"), it allows oneto view the Clearcase archive from/vob/vob-name/....
  • The above path is for /view/view-name1/
  • The path /view/view-name1@@/ will show all the revision branches. i.e.
    /view/view-name1@@/vob/vob-name/main/LATEST/directory-name/main/LATEST/...                                   0/...                                                            0/...                                                            1/...                                                            2/...                                   1/...    

Configspec:

Configspec specifies rules of viewing specified elements which will be shown ina given view.The system default configspec can be found in$ATRIAHOME/default_config_spec (Typically:/usr/atria/default_config_spec)

Basic configspec:
(/destination viewstore/view-tag.vws/config_spec)

element * CHECKEDOUTelement * /main/LATEST    

Pattern matching:

PatternDescription*Matches all elements in the path but not recursively.*.hMatches all elements in the path which match the suffix ".h", but not recursively.src/MakefileMatches all elements in the path in a directory named "src" which match this file name.src/.../MakefileMatches all elements in the directory/subdirectory tree named "src" which match this file name.src/.../*.[ch]Matches all elements with the suffic ".h" and ".c" in the directory/subdirectory tree named "src".src/...Matches all elements (files and directories) in the directory/subdirectory tree named "src".
Config RuleDescriptionelement * CHECKEDOUTThis rule is mandatory. Without this rule, any file that is checked out will not be seen in a view.element -directory * /main/LATESTLook at latest version of the directory on the main branch.element -directory * /branch-name/LATESTLook at latest version of the directory on the defined branch.element -file * /main/version-numberShow this particular version number of all files in view.element * LABELShow elements with this label. (i.e. element * /main/LABEL3)element * rule-name -time time
element * rule-name -time 26-Oct.14:32Show elements which comply with this rule and last modified prior totimeelement * rule-name -time timeShow elements which comply with this rule and last modified prior to timeelement * /vob/vob-name/AppName/* LABELShow elements in the specified directory with the given label.element /vob/projectA/... /main/LATESTRule applies only to specified directory hierarchy.
Branching:

Branching can be performed to:

  • Allow parallel development between two developers and later merge the code.
  • Create a new version of the software with different features for a specific purpose.
  • Add features in a separate branch to be merged in laterafter it is proven. The benefit is to allow the main branch to continuewithout being disturbed.

Configspec to view branch:

element * CHECKEDOUTelement * .../branchx/LATESTelement * /main/LATEST -mkbranch branchx    
This configspec will create a new branch for new files added or for files checked out.If file is checked out from/main/LATEST, then trigger (mkbranch branchx) executes to create a new branch for the file checked out.

The branch type must first be created with the command: mkbrtype -c "Comment goes here" branchx


Create the branch type before creating the actual branch. Only one branch type of a given name will exist. Many files may exist with the branches of the same branch type.

Example of creating a branch:

  • ct mkbrtype -c "Comment goes here" BugFix_branch_Y
  • ct setview view-name
  • ct mkbranch -nc BugFix_branch_Y file-to-branch.cpp
This will create version "0" of file-to-branch.cpp in the branch named BugFix_branch_Y.

Create a branch off of version 5 of file-to-branch.cpp in branch main.
ct mkbranch -nc BugFix_branch_Y file-to-branch.cpp@@/main/5

Create branch using all source: ct mkbranch -nco -c "Bugfix patch B" patch_B *.cpp *.h
GUI: ct lsvtree -g file-name

Merging: If one wishes to include the changes made in abranch into the "latest" version in the "main" branch, one wouldperform a "merge".

  • Merge version 5 on the branch into the "latest" version in the "main" branch:
    ct merge -to file-to-merge.cpp -insert -version /main/BugFix_branch_Y/5
  • Specify consecutive versions 2 through 5:
    ct merge -t file-to-merge.cpp -insert -version /main/BugFix_branch_Y/2/main/BugFix_branch_Y/5
  • Merge all changes in a branch into the "main" branch:
    ct findmerge file-to-merge.cpp -fversions .../BugFix_branch_Y/LATEST -merge

List all branches: ct lstype -kind brtype


GUI Tools:

Tools:

  • xclearcase:
    Command: /usr/atria/bin/xclearcase
  • xcleardiff:
    Command: /usr/atria/bin/xcleardiff
    Motif resource file: (Add to $HOME/.Xdefaults)
    xcleardiff*promptBrightColor:   yellowxcleardiff*changeColor:         bluexcleardiff*deleteColor:         redxcleardiff*insertColor:         green    
  • xlsvtree:
    Command: /usr/atria/bin/xlsvtree
[Potential Pitfall]: You may have to issue the commandexport LANG=C prior to launching GUI.

Common resources:
Motif resource file: (Add to $HOME/.Xdefaults)

*scheme:              Monet*XmText*marginHeight: 4*foreground:          black           - Text color*background:          white    

Version String Generation:
  • Makefile:
    ...target: version.h $(OTHER_OBJS)     cc -o target -DDATE ="\"@(#)`date`\"" $(OTHER_OBJS)...    
  • Source Code: (.h file)
    ...char *version = "@(#)target R3.0";char *version_time = DATAE;...    

This is used in conjunction with the UNIX what command. (Not available onLinux)

原创粉丝点击