版本控制工具学习 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,如果不加ct的rm,只是删除了你的view的本地文件,没有对CC的服务器产生影响)

$ ll

total 0

$ ct ci -nc .

当错误删除某个文件file1:

可以使用以下命令还原:

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

clearcase常用命令的更多相关文章

  1. clearcase command (linux 常用命令)

    http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m0/index.jsp?topic=/com.ibm.rational.clearcase.h ...

  2. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  3. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  4. Linux学习笔记(一):常用命令

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

  5. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  6. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  7. npm常用命令

    npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...

  8. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

  9. linux iptables常用命令之配置生产环境iptables及优化

    在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...

随机推荐

  1. FMDB的基本应用

    FMDB简介 iOS中原生的SQLite API在进行数据存储的时候,需要使用C语言中的函数,操作比较频繁.于是,就出现了一系列将AQLite API进行封装的库,例如FMDB.PlausibleDa ...

  2. iOS KVO & KVC

    键值观察:值更改时通知观察者 键值观察(Key-value observing,或简称 KVO)允许对象观察另一个对象的属性.该属性值改变时,会通知观察对象.它了解新值以及旧值:如果观察的属性为对多的 ...

  3. PHP+Apache+Mysql 配置流程【配置之后才能正常使用】

    你需要的软件: 1.服务器:apache_2.2.4-win32-x86-no_ssl.msi http://pan.baidu.com/share/link?shareid=3837123167&a ...

  4. 免费的HTML5连载来了《HTML5网页开发实例具体解释》连载(六)媒体查询

    响应式设计的还有一个重要技术手段是媒体查询.假设仅仅是简单的设计一个流式布局系统,那么能够保证每一个网格按比例的放大和缩小,但有可能会使得在小屏幕下(如手机设备)网格太小而严重影响阅读,这种设计称不上 ...

  5. CocoaPods的安装使用和常见问题

    一.什么是CocoaPods CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理.开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第 ...

  6. [Swust OJ 567]--老虎在不在笼子里(凸包问题)

    题目链接:http://acm.swust.edu.cn/problem/567/ Time limit(ms): 1000 Memory limit(kb): 65535   一只老虎自从看了< ...

  7. Java -- sleep and wait

    1.二者的来源 sleep(),是Thread下面的静态方法/静态本地方法. wait(),是Object()的final方法. 2.源码分析 a.sleep() public static void ...

  8. 基于springmvc的简单增删改查实现---中间使用到了bean validation

    package com.kite.controller; import java.util.HashMap; import java.util.Map; import javax.validation ...

  9. zk leader选举自动完成

    server 1: [root@wx03 bin]# ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /zook ...

  10. 【原创】Android 系统稳定性 - ANR(二)

    文章都为原创,转载请注明出处,未经允许而盗用者追究法律责任. 很久之前写的了,留着有点浪费,共享之.编写者:李文栋P.S. OpenOffice粘贴过来后格式有些混乱. 1.2 如何分析ANR问题 引 ...