clear case training
TRANSCRIPT
Rational ClearCase Fundamentals for Windows
Rational ClearCase Fundamentals for Windows
ClearCaseClearCaseClearCase
大纲大纲
ClearCase如何管理开发对象
ClearCase对象
设置工作空间
Windows环境下ClearCase的使用
开始使用ClearCase使用ClearCase进行软件开发
配置工作空间
使用分支进行并行开发
并行开发集成
ClearCase如何管理开发对象
ClearCase对象
设置工作空间
Windows环境下ClearCase的使用
开始使用ClearCase使用ClearCase进行软件开发
配置工作空间
使用分支进行并行开发
并行开发集成
ClearCaseClearCaseClearCase
ClearCase如何管理开发对象ClearCase如何管理开发对象
ClearCaseClearCaseClearCase
主题主题
介绍ClearCase工作空间管理
版本控制
Build管理和过程控制
介绍ClearCase工作空间管理
版本控制
Build管理和过程控制
ClearCaseClearCaseClearCase
目标目标
通过学习本章,应该能够:
描述ClearCase如何管理软件配置
定义工作空间管理,版本控制,build管理和过程控制
描述配置管理对开发过程的影响
通过学习本章,应该能够:
描述ClearCase如何管理软件配置
定义工作空间管理,版本控制,build管理和过程控制
描述配置管理对开发过程的影响
ClearCaseClearCaseClearCase
ClearCase如何管理开发对象ClearCase如何管理开发对象
介绍ClearCase工作空间管理
版本控制
Build管理和过程控制
介绍ClearCase工作空间管理
版本控制
Build管理和过程控制
ClearCaseClearCaseClearCase
软件配置管理(SCM)软件配置管理(SCM)
SCM包括了所有软件项目的好的工程实践,无论阶段化开发、快速原型或者正在进行的维护活动。
它强调软件的可靠性和质量依赖于:提供识别和控制文档、代码、接口和数据库的结构,以支持所有生命周期的阶段。
支持一种可选的开发/维护的方法论,适应于需求、标准、方针、组织和管理体系。
产生管理和产品信息,涉及基线、变更控制、测试、发布、审计等的状态。
SCM包括了所有软件项目的好的工程实践,无论阶段化开发、快速原型或者正在进行的维护活动。
它强调软件的可靠性和质量依赖于:提供识别和控制文档、代码、接口和数据库的结构,以支持所有生命周期的阶段。
支持一种可选的开发/维护的方法论,适应于需求、标准、方针、组织和管理体系。
产生管理和产品信息,涉及基线、变更控制、测试、发布、审计等的状态。
ClearCaseClearCaseClearCase
ClearCase功能组ClearCase功能组
Release5.0
建立管理
版本管理
工作空间管理
工艺过程管理
SoftwareDevelopmentEngineering
report 警告
FOO BAR
ClearCaseClearCaseClearCase
ClearCase如何管理开发对象ClearCase如何管理开发对象
介绍ClearCase工作空间管理
版本控制
Build管理和过程控制
介绍ClearCase工作空间管理
版本控制
Build管理和过程控制
ClearCaseClearCaseClearCase
工作空间管理(Workspace management)工作空间管理(Workspace management)
视图(View)提供了一个工作空间:显示VOB中的开发数据和目录
能够访问视图私有的数据和目录
视图(View)提供了一个工作空间:显示VOB中的开发数据和目录
能够访问视图私有的数据和目录
ClearCaseClearCaseClearCase
显示选取的版本显示选取的版本
在ClearCase Explorer中显示一个动态视图(Dynamic View) nc_view在ClearCase Explorer中显示一个动态视图(Dynamic View) nc_view
foo.hfoo.c
srctest.txt不是一个ClearCase版本对象
动态视图中元素的版本树显示在上方,眼睛标示着通过这个视图所选取的版本。动态视图中元素的版本树显示在上方,眼睛标示着通过这个视图所选取的版本。
ClearCaseClearCaseClearCase
视图View视图View
通过使用配置规则(config specs)来访问数据
显示视图私有目录和文件
通过使用不同配置规则的不同视图管理不同的任务
通过标准工具来提供对所有版本化对象的访问
使用本地操作系统习惯
通过使用配置规则(config specs)来访问数据
显示视图私有目录和文件
通过使用不同配置规则的不同视图管理不同的任务
通过标准工具来提供对所有版本化对象的访问
使用本地操作系统习惯
ClearCaseClearCaseClearCase
两种类型视图两种类型视图
动态连接到共享存储区
虚拟的
随着新的工作被共享产生变化
快照
当连接到共享存储区,容许访问数据
静态的
用户控制何时共享工作
动态连接到共享存储区
虚拟的
随着新的工作被共享产生变化
快照当连接到共享存储区,容许访问数据
静态的
用户控制何时共享工作
ClearCaseClearCaseClearCase
两种类型视图两种类型视图
VOB
Copy
动态视图( Dynamic View)随时反映VOB变化
只下载必要文件,可节省Local Machine 空间
需要联网操作
快照视图(Snapshot View)可离网操作
控制文件更新时机
Hijack文件自动同期
快照视图(Snapshot View)可离网操作
控制文件更新时机
Hijack文件自动同期
ClearCaseClearCaseClearCase
动态视图(Dynamic Views)动态视图(Dynamic Views)
对元素透明访问
虚拟文件系统
总是 新的
提供build审计
对元素透明访问
虚拟文件系统
总是 新的
提供build审计
foo.c foo.h src bar.c
VOB
foo.cfoo.c foo.hfoo.h bar.cbar.c test.txttest.txt
src
foo.c test.txt
checkout
虚拟命名空间
ClearCaseClearCaseClearCase
快照视图(Dynamic Views)快照视图(Dynamic Views)
使用装载规则(load rules)拷贝数据到其它媒介(本地存储区或可移动存储区)
容许在网络断开时工作
提供优化的build性能
使用装载规则(load rules)拷贝数据到其它媒介(本地存储区或可移动存储区)
容许在网络断开时工作
提供优化的build性能 foo.c foo.h src bar.c
VOB
foo.c bar.c
src
foo.h
Connec
ted
Discon
nected
本地存储区
ClearCaseClearCaseClearCase
ClearCase如何管理开发对象ClearCase如何管理开发对象
介绍ClearCase工作空间管理
版本控制
Build管理和过程控制
介绍ClearCase工作空间管理
版本控制
Build管理和过程控制
ClearCaseClearCaseClearCase
版本控制版本控制
版本化目录和所有文件类型
存储对象在一个Versioned Object Base(VOB)中确保所有元素是只读的
方便的checkout-edit-checkin方式
提供可靠的版本标识
版本化目录和所有文件类型
存储对象在一个Versioned Object Base(VOB)中确保所有元素是只读的
方便的checkout-edit-checkin方式
提供可靠的版本标识
Versioned Object Base(VOB)
1
0
dir 1\main
2
3
1
0
file101.c\main
2
3
4
VERSIONS
ELEMENTS
BETA_01
RLS1.0
RLS2.0LABELS VERSIONS
ClearCaseClearCaseClearCase
版本控制特点版本控制特点
针对并行开发的无限分支性能
图形化的比较功能和智能归并程序自动地归并没有冲突的变化
针对并行开发的无限分支性能
图形化的比较功能和智能归并程序自动地归并没有冲突的变化
1
0
file101.c\main
2
3
4
Versioned Object Base(VOB)
1
0
2
1
0
2
BRANCHES
MERGE
\rls2_bugfix
\special
ClearCaseClearCaseClearCase
ClearCase如何管理开发对象ClearCase如何管理开发对象
介绍ClearCase工作空间管理
版本控制
Build管理和过程控制
介绍ClearCase工作空间管理
版本控制
Build管理和过程控制
ClearCaseClearCaseClearCase
建立管理建立管理
ClearCase使用clearmake和omake工具来管理建立(build):
适用于标准的makefile文件
自动监测头文件和源文件的依赖性
保证完全重现每一次build
ClearCase使用clearmake和omake工具来管理建立(build):
适用于标准的makefile文件
自动监测头文件和源文件的依赖性
保证完全重现每一次build
ClearCaseClearCaseClearCase
建立管理建立管理
共享过去别人建立过的数据
二进制文件的共享与建立高效化的实现
一台建立多台共享
缩短系统建立时间提高建立效率
ClearCaseClearCaseClearCase
过程控制过程控制
测试结果执行文件 文档资料
呼出
E-mail 通知
report
Tools
项目经理
Trigger
Test#7Test#7
Hyperlink
RelNoteRelNote
开发人员开发人员
Lock 不可变更
旧版本
除系统管理者之外不可访问
特殊权限限制
ClearCaseClearCaseClearCase
开发人员的使用模型开发人员的使用模型
当开发软件时,你:创建一个私有工作空间
访问软件、文档和工具
对可编辑文件进行工作
共享你的工作成果给其他人
合并其他人的工作成果到你的工作中
状态报告
创建产品
当开发软件时,你:创建一个私有工作空间
访问软件、文档和工具
对可编辑文件进行工作
共享你的工作成果给其他人
合并其他人的工作成果到你的工作中
状态报告
创建产品
ClearCaseClearCaseClearCase
ClearCase ObjectsClearCase Objects
ClearCaseClearCaseClearCase
主题主题
理解VOB理解View路径名(Pathnames)
理解VOB理解View路径名(Pathnames)
ClearCaseClearCaseClearCase
目标目标
通过学习本章,应该能够:
解释ClearCase如何存储开发对象
描述访问一个版本化文件或目录的途径
使用路径名
通过学习本章,应该能够:
解释ClearCase如何存储开发对象
描述访问一个版本化文件或目录的途径
使用路径名
ClearCaseClearCaseClearCase
ClearCase ObjectsClearCase Objects
理解VOB理解View路径名(Pathnames)
理解VOB理解View路径名(Pathnames)
ClearCaseClearCaseClearCase
什么是一个Element?什么是一个Element?
An element is an object that consists of a set of versions, organized into a version tree.任何Windows文件系统下的文件系统对象都可以作为一个element置于ClearCase版本控制之下
Elements的例子如下:Source filesDirectoriesBinary filesObjects librariesDocuments
An element is an object that consists of a set of versions, organized into a version tree.任何Windows文件系统下的文件系统对象都可以作为一个element置于ClearCase版本控制之下
Elements的例子如下:Source filesDirectoriesBinary filesObjects librariesDocuments
1
0file101.c
\rls2_bugfix
\enhance
2
3
4
5
6
7
0
0 1
21
2
3
0
1
2
\special
BETA_01
RLS1.0
RLS2.0
RLS3.0
\main
ClearCaseClearCaseClearCase
什么是一个VOB?什么是一个VOB?
ClearCase elements 的只读存储库
存储版本控制数据的网络文件系统资源
存储库可以置于:Windows NTWindows 2000UNIX(包括Red Hat Linux)
ClearCase elements 的只读存储库
存储版本控制数据的网络文件系统资源
存储库可以置于:Windows NTWindows 2000UNIX(包括Red Hat Linux)
ClearCaseClearCaseClearCase
Projects and VOBsProjects and VOBs
Project
Xmsg.h units.h
parse.c lex.c bar.c foo.c
Project
Y
Versioned ObjectBase 1
Versioned ObjectBase 3
Versioned ObjectBase 2
一个project可以跨越多个VOB多个project可以共享共同的VOB
ClearCaseClearCaseClearCase
VOB和View交互工作VOB和View交互工作
一个VOB必须进行Mount才能激活,并且或者启动一个Dynamic View,或者装载一个Snapshot ViewVOB与Dynamic View工作在一起,使VOB看起来就像一个目录
VOB与Snapshot View工作在一起,将会把所选择的版本复制到一个指定位置
一个VOB必须进行Mount才能激活,并且或者启动一个Dynamic View,或者装载一个Snapshot ViewVOB与Dynamic View工作在一起,使VOB看起来就像一个目录
VOB与Snapshot View工作在一起,将会把所选择的版本复制到一个指定位置
ClearCaseClearCaseClearCase
Mounting a VOB Mounting a VOB
激活一个VOB在工作空间中使用
通过VOB的标签(tag)名来访问,标签名是标识VOB的一个独一无二的名字
激活一个VOB在工作空间中使用
通过VOB的标签(tag)名来访问,标签名是标识VOB的一个独一无二的名字
ClearCaseClearCaseClearCase
Mounting a VOB Mounting a VOB
GUI方式
ClearCase Explorer > Mount VOBWindows Explorer > Mount VOB
CLI方式
c:\> cleartool mount \test_vob
GUI方式
ClearCase Explorer > Mount VOBWindows Explorer > Mount VOB
CLI方式
c:\> cleartool mount \test_vob
ClearCaseClearCaseClearCase
访问View和VOB 访问View和VOB View显示
hello.c hello.h src util.c
VOB
foo.cfoo.c foo.hfoo.h
src
ClearCaseClearCaseClearCase
打破平衡打破平衡
建立方针和过程以打破以下两者的平衡:建立方针和过程以打破以下两者的平衡:
访问共享资源
隔离不稳定的变化
访问共享资源
隔离不稳定的变化
ClearCaseClearCaseClearCase
ClearCase ObjectsClearCase Objects
理解VOB理解View路径名(Pathnames)
理解VOB理解View路径名(Pathnames)
ClearCaseClearCaseClearCase
ViewsViews
通过配置规则(config specs)访问VOB中的数据
显示视图私有目录和文件
通过使用不同配置规则的不同视图来管理不同的任务
使用本地操作系统的规则
提供对来自标准开发工具的所有版本化对象的访问
进行并行开发
为一个或一组开发人员提供一个工作空间
通过配置规则(config specs)访问VOB中的数据
显示视图私有目录和文件
通过使用不同配置规则的不同视图来管理不同的任务
使用本地操作系统的规则
提供对来自标准开发工具的所有版本化对象的访问
进行并行开发
为一个或一组开发人员提供一个工作空间
ClearCaseClearCaseClearCase
View做什么?View做什么?
使用配置规则(config specs),选择VOB中目录和文件的版本
为一个或一组开发人员提供工作空间
使开发人员能进行并行开发
使用配置规则(config specs),选择VOB中目录和文件的版本
为一个或一组开发人员提供工作空间
使开发人员能进行并行开发
视图目录视图目录
一个目录元素的版本
一个目录元素的版本
一个文件元素的版本
视图私有文件
ClearCaseClearCaseClearCase
通过View进行版本选择通过View进行版本选择
foo.c foo.h src bar.c
VOB
foo.cfoo.c foo.hfoo.h bar.cbar.c test.txt
test.txt
src
foo.c test.txt
checkout
虚拟命名空间
动态视图显示 以标准目录树结构显示以标准目录树结构显示
foo.c foo.h src bar.c
VOB
foo.c bar.c
src
foo.h
Conn
ecte
d
Disc
onne
cted
本地存储区
快照视图显示
选择存储在VOB中的元素的版本
使用配置规则
选择存储在VOB中的元素的版本
使用配置规则
ClearCaseClearCaseClearCase
什么是一个Version?什么是一个Version?
一个element version就是一个置于版本控制之下的文件的一个修订
一个version就是在view中所显示出来的内容
一个version是存储在VOB中的一个element的一部分
一个element version就是一个置于版本控制之下的文件的一个修订
一个version就是在view中所显示出来的内容
一个version是存储在VOB中的一个element的一部分
ClearCaseClearCaseClearCase
Directory VersionsDirectory Versions
一个directory version就是一个包含了目录下的所有文件元素名字的目录
Directory version可以使用版本扩展名列示出来
一个directory version就是一个包含了目录下的所有文件元素名字的目录
Directory version可以使用版本扩展名列示出来
ClearCaseClearCaseClearCase
动态视图实现动态视图实现
动态视图存储区目录
db
.s
Admin
View-tagView database filesClearCase internalinformation
Symbolic nameused to reference
the view View-private files(checked-out files,unshared derived objects,temporaryfiles)
Administrative filesAdministrative files that manage connections to other ClearCase objects
ClearCaseClearCaseClearCase
快照视图实现快照视图实现
快照视图存储区目录
db
Admin
View-tagView database filesClearCase internalinformation
Symbolic nameused to reference
the view
View-private files(checked-out files,unshared derived objects,temporaryfiles)
Administrative filesAdministrative files that manage connections to other ClearCase objects
.s
快照视图根目录
ClearCaseClearCaseClearCase
ClearCase ObjectsClearCase Objects
理解VOB理解View路径名(Pathnames)
理解VOB理解View路径名(Pathnames)
ClearCaseClearCaseClearCase
PathnamesPathnames
一个View所选中的版本例如:\main\3z:\test> type hello.cint main() {
printf (“Hello, this is the latest version.\n”);return 0;
}一个非View所选中的版本z:\test> type hello.c@@\main\1main() {
printf(“Hello there, world!\n”);}
一个View所选中的版本例如:\main\3z:\test> type hello.cint main() {
printf (“Hello, this is the latest version.\n”);return 0;
}一个非View所选中的版本z:\test> type hello.c@@\main\1main() {
printf(“Hello there, world!\n”);}
ClearCaseClearCaseClearCase
Version Extended NameVersion Extended Name
z:\test\hello.c@@ \main\1
z:\test\hello.c —— 标识文件系统路径名
@@ —— 版本标识符号
\main\1 —— 标识版本号
z:\test\hello.c@@ \main\1
z:\test\hello.c —— 标识文件系统路径名
@@ —— 版本标识符号
\main\1 —— 标识版本号
ClearCaseClearCaseClearCase
设置工作空间设置工作空间
ClearCaseClearCaseClearCase
主题主题
创建一个视图
激活一个视图
删除一个视图
创建一个视图
激活一个视图
删除一个视图
ClearCaseClearCaseClearCase
目标目标
通过学习本章,应该能够:
创建一个视图
激活一个视图
删除一个视图
通过学习本章,应该能够:
创建一个视图
激活一个视图
删除一个视图
ClearCaseClearCaseClearCase
设置工作空间设置工作空间
创建一个视图
激活一个视图
删除一个视图
创建一个视图
激活一个视图
删除一个视图
ClearCaseClearCaseClearCase
工作空间管理配置工作空间管理配置
Local StorageLocal Storage
Registry LocationRegistry Location
License LocationLicense Location
Remote Server VOB Storage
Remote Server VOB Storage
View ServerView Server
ClearCaseClearCaseClearCase
The View Creation ProcessThe View Creation Process
创建视图存储区目录
在视图注册文件中创建条目,注册视图
启动系统中的view_server进程
使用缺省配置规格进行版本选择
对于快照视图,使用装载规则来下载通过配置规格所选择的版本
创建视图存储区目录
在视图注册文件中创建条目,注册视图
启动系统中的view_server进程
使用缺省配置规格进行版本选择
对于快照视图,使用装载规则来下载通过配置规格所选择的版本
ClearCaseClearCaseClearCase
Accessing Create ViewAccessing Create View
三种方式:
从开始菜单中进入:开始->程序->Rational ClearCase->Create View从ClearCase Explorer中进入:1. 选中“Toolbox” tab2. 选中“Base ClearCase” tab3. 选择“Create View” icon从命令行(Command Prompt)进入:c:\> cleartool mkview
三种方式:
从开始菜单中进入:开始->程序->Rational ClearCase->Create View从ClearCase Explorer中进入:1. 选中“Toolbox” tab2. 选中“Base ClearCase” tab3. 选择“Create View” icon从命令行(Command Prompt)进入:c:\> cleartool mkview
ClearCaseClearCaseClearCase
The View Creation WizardThe View Creation Wizard
创建Dynamic Views和Snapshot Views创建Dynamic Views和Snapshot Views
ClearCaseClearCaseClearCase
Creating a Dynamic ViewCreating a Dynamic View
ClearCaseClearCaseClearCase
Creating a Snapshot ViewCreating a Snapshot View
ClearCaseClearCaseClearCase
Load Rules for Snapshot ViewsLoad Rules for Snapshot Views
配置规则的一部分
用以决定哪些元素的版本要被复制到快照视图中
保存check-ins,updates以及其它影响元素的ClearCase操作的轨迹
配置规则的一部分
用以决定哪些元素的版本要被复制到快照视图中
保存check-ins,updates以及其它影响元素的ClearCase操作的轨迹
All elements in a VOBAll elements in a VOB
Single elementSingle element
ClearCaseClearCaseClearCase
Load the ElementsLoad the Elements
静态视图只能
在对创建视图进行确认后,Choose Elements to Load窗口来显示
选择整个VOB一个element
静态视图只能
在对创建视图进行确认后,Choose Elements to Load窗口来显示
选择整个VOB一个element
ClearCaseClearCaseClearCase
Creating a Dynamic View: SyntaxCreating a Dynamic View: Syntax
cleartool mkview -tag dynamic-view-tag[-region network-region] [-shareable_dos | -nshareable_dos] [-host hostname -hpath host-stg-pname] dynamic-view-storage-pname
cleartool mkview -tag dynamic-view-tag[-region network-region] [-shareable_dos | -nshareable_dos] [-host hostname -hpath host-stg-pname] dynamic-view-storage-pname
这是节略的命令语法;完全的命令语法,请参见Rational ClearCase Command Reference这是节略的命令语法;完全的命令语法,请参见Rational ClearCase Command Reference
ClearCaseClearCaseClearCase
创建动态视图举例创建动态视图举例
C:\>cleartool mkview –tag user_view\\scmserver\views\user_view.vws
Created view.Host-local path: scmserver:D:\Views\user_view.vwsGlobal path: \\scmserver\views\user_view.vws
\\scmserver\views必须存在, user_view.vws必须不存在
C:\>cleartool mkview –tag user_view\\scmserver\views\user_view.vws
Created view.Host-local path: scmserver:D:\Views\user_view.vwsGlobal path: \\scmserver\views\user_view.vws
\\scmserver\views必须存在, user_view.vws必须不存在
ClearCaseClearCaseClearCase
Creating a Snapshot ViewCreating a Snapshot View
cleartool mkview -snapshot[-tag dynamic-view-tag][-tcomment tag-comment][-cachesize size] [-ptime][-stgloc view-stgloc-name|colocated_server [-host hostname-hpath host-snapshot-view-pname-gpath global-snapshot-view-pname]]snapshot-view-pname
cleartool mkview -snapshot[-tag dynamic-view-tag][-tcomment tag-comment][-cachesize size] [-ptime][-stgloc view-stgloc-name|colocated_server [-host hostname-hpath host-snapshot-view-pname-gpath global-snapshot-view-pname]]snapshot-view-pname
这是节略的命令语法;完全的命令语法,请参见Rational ClearCase Command Reference这是节略的命令语法;完全的命令语法,请参见Rational ClearCase Command Reference
ClearCaseClearCaseClearCase
创建快照视图举例创建快照视图举例
C:\>cleartool mkview -tag zhangyong_sv1 -snapshot -stgloc Views F:\MySnapshotViews\zhangyong_sv1.vws
Created view.Host-local path:
scmserver:D:\Views\PDOMAIN\zhangyong\zhangyong_sv1.vws.vws
Global path: \\scmserver\Views\PDOMAIN\zhangyong\zhangyong_sv1.vws.vws
Created snapshot view directory "F:\MySnapshotViews\zhangyong_sv1.vws".
C:\>cleartool mkview -tag zhangyong_sv1 -snapshot -stgloc Views F:\MySnapshotViews\zhangyong_sv1.vws
Created view.Host-local path:
scmserver:D:\Views\PDOMAIN\zhangyong\zhangyong_sv1.vws.vws
Global path: \\scmserver\Views\PDOMAIN\zhangyong\zhangyong_sv1.vws.vws
Created snapshot view directory "F:\MySnapshotViews\zhangyong_sv1.vws".
ClearCaseClearCaseClearCase
通常的错误通常的错误
分配给视图的目录不存在
cleartool: Error: Attempt to get location information on " \\scmserver\views\sv" failed:No such file or directory视图存储区已存在cleartool: Error: Unable to create directory "\scmserver\views\sv\user_view.vws": File existscleartool: Error: Unable to create view "\scmserver\views\sv\user_view.vws"所选择的视图标签已经存在cleartool: Error: A registry entry already exists for "user_view"
分配给视图的目录不存在
cleartool: Error: Attempt to get location information on " \\scmserver\views\sv" failed:No such file or directory视图存储区已存在cleartool: Error: Unable to create directory "\scmserver\views\sv\user_view.vws": File existscleartool: Error: Unable to create view "\scmserver\views\sv\user_view.vws"所选择的视图标签已经存在cleartool: Error: A registry entry already exists for "user_view"
ClearCaseClearCaseClearCase
设置工作空间设置工作空间
创建一个视图
激活一个视图
删除一个视图
创建一个视图
激活一个视图
删除一个视图
ClearCaseClearCaseClearCase
激活一个视图激活一个视图
浏览View的方式与本地操作系统的目录一样浏览View的方式与本地操作系统的目录一样
ClearCaseClearCaseClearCase
激活一个动态视图激活一个动态视图
视图的识别是通过网络上唯一的标签名
你可以通过以下方式激活并访问动态视图Create View WizardClearCase Explorer中的Views tab从Windows Explorer中映射一个网络驱动器
ClearCase Explorer中的MVFS驱动器或CLI,net usecleartool 子命令,startview
视图的识别是通过网络上唯一的标签名
你可以通过以下方式激活并访问动态视图Create View WizardClearCase Explorer中的Views tab从Windows Explorer中映射一个网络驱动器
ClearCase Explorer中的MVFS驱动器或CLI,net usecleartool 子命令,startview
ClearCaseClearCaseClearCase
启动动态视图启动动态视图
从ClearCase Explorer中进入:1. 选中“Toolbox” tab2. 选中“Base ClearCase” tab3. 选择“Start View” icon
从ClearCase Explorer中进入:1. 选中“Toolbox” tab2. 选中“Base ClearCase” tab3. 选择“Start View” icon
从命令行(Command Prompt)进入:c:\> cleartool startview MRP_view
从命令行(Command Prompt)进入:c:\> cleartool startview MRP_view
ClearCaseClearCaseClearCase
Dynamic Views DriveDynamic Views Drive
当Dynamic View被激活时,可以被映射到一个逻辑驱动器上当Dynamic View被激活时,可以被映射到
一个逻辑驱动器上
ClearCaseClearCaseClearCase
逻辑视图逻辑视图
F:(view1)
F:(view1)
VOB1 VOB2
M:M:
view1 view2
VOB1 VOB2 VOB1 VOB2
MVFS启动器(缺省M:)包含了每个活动的动态视图的入口
每个动态视图子目录包含了每个活动的VOB
MVFS启动器(缺省M:)包含了每个活动的动态视图的入口
每个动态视图子目录包含了每个活动的VOB
ClearCaseClearCaseClearCase
显示当前视图显示当前视图
使用cleartool pwv命令显示当前视图使用cleartool pwv命令显示当前视图
cleartool pwv [-short][-wdview | -setview | -root]cleartool pwv [-short][-wdview | -setview | -root]
Z:\> cleartool pwvWorking directory view: MRP_viewSet view: MRP_view
Z:\> cleartool pwvWorking directory view: MRP_viewSet view: MRP_view
ClearCaseClearCaseClearCase
设置工作空间设置工作空间
创建一个视图
激活一个视图
删除一个视图
创建一个视图
激活一个视图
删除一个视图
ClearCaseClearCaseClearCase
Removing a ViewRemoving a View
在删除View前,要确保视图私有文件被添加至VOB中,或拷贝到其它处。
删除视图将会:
清除VOB中的View相关信息(checkouts和DO)删除View存储目录
Kill view server processes
注意:不要使用Windows程序直接删除View的存储目录
在删除View前,要确保视图私有文件被添加至VOB中,或拷贝到其它处。
删除视图将会:
清除VOB中的View相关信息(checkouts和DO)删除View存储目录
Kill view server processes
注意:不要使用Windows程序直接删除View的存储目录
ClearCaseClearCaseClearCase
Remove a ViewRemove a View
两种方式:
从ClearCase Explorer中进入:1. 选中“Toolbox” tab2. 选中“Base ClearCase” tab3. 选择“Remove View” icon
从命令行(Command Prompt)进入:c:\> cleartool rmview –tag MRP_view
两种方式:
从ClearCase Explorer中进入:1. 选中“Toolbox” tab2. 选中“Base ClearCase” tab3. 选择“Remove View” icon
从命令行(Command Prompt)进入:c:\> cleartool rmview –tag MRP_view
ClearCaseClearCaseClearCase
Remove a ViewRemove a View
从ClearCase Explorer的Views tab中选择Remove View从ClearCase Explorer的Views tab中选择Remove View
ClearCaseClearCaseClearCase
Windows环境下ClearCase的使用Windows环境下ClearCase的使用
ClearCaseClearCaseClearCase
主题主题
使用ClearCase图形接口
使用ClearCase命令行接口
获得ClearCase信息
访问文档和帮助
使用ClearCase图形接口
使用ClearCase命令行接口
获得ClearCase信息
访问文档和帮助
ClearCaseClearCaseClearCase
目标目标
通过学习本章,应该能够:
使用ClearCase图形用户接口
使用ClearCase命令行接口
获得ClearCase信息
访问ClearCase文档和帮助
通过学习本章,应该能够:
使用ClearCase图形用户接口
使用ClearCase命令行接口
获得ClearCase信息
访问ClearCase文档和帮助
ClearCaseClearCaseClearCase
Windows环境下ClearCase的使用Windows环境下ClearCase的使用
使用ClearCase图形接口
使用ClearCase命令行接口
获得ClearCase信息
访问文档和帮助
使用ClearCase图形接口
使用ClearCase命令行接口
获得ClearCase信息
访问文档和帮助
ClearCaseClearCaseClearCase
使用ClearCase图形接口使用ClearCase图形接口
许多ClearCase操作都可以在Windows Explorer中直接执行
相关菜单• 依赖于所选择的
ClearCase对象的类型
• 可以通过右键点击所选择的对象
许多ClearCase操作都可以在Windows Explorer中直接执行
相关菜单• 依赖于所选择的
ClearCase对象的类型
• 可以通过右键点击所选择的对象
ClearCaseClearCaseClearCase
ClearCase ExplorerClearCase Explorer
视图模式
快捷栏
文件夹窗格
浏览器窗格
信息窗格
ClearCaseClearCaseClearCase
ClearCase Explorer(Toolbox View)ClearCase Explorer(Toolbox View)
工具箱模式
文件夹窗格
浏览器窗格
信息窗格
快捷栏
ClearCaseClearCaseClearCase
Windows环境下ClearCase的使用Windows环境下ClearCase的使用
使用ClearCase图形界面
使用ClearCase命令行界面
获得ClearCase信息
访问文档和帮助
使用ClearCase图形界面
使用ClearCase命令行界面
获得ClearCase信息
访问文档和帮助
ClearCaseClearCaseClearCase
使用ClearCase命令行界面使用ClearCase命令行界面
Cleartool命令包含了一套丰富的子命令集,去访问、操作和修改views和VOBs。
命令行接口
• 给用户一个图形接口的替代方式;
• 对自动脚本很有帮助;
• 提供众多访问、操作和修改views和VOBs的子命令。
Cleartool命令包含了一套丰富的子命令集,去访问、操作和修改views和VOBs。
命令行接口
• 给用户一个图形接口的替代方式;
• 对自动脚本很有帮助;
• 提供众多访问、操作和修改views和VOBs的子命令。
ClearCaseClearCaseClearCase
命令行界面命令行界面
ClearCaseClearCaseClearCase
命令行界面命令行界面
Single Command ModeSingle Command Mode
Interactive Command ModeInteractive Command Mode
使用quit或exit可以退出cleartool interactive在cleartool interactive mode下输入字符‘!’可以使用任
何Windows command
使用quit或exit可以退出cleartool interactive在cleartool interactive mode下输入字符‘!’可以使用任
何Windows command
ClearCaseClearCaseClearCase
使用cleartool命令使用cleartool命令
例子:
使用cleartool ls子命令列出当前目录中的所有元素:
Z:\test\zy\1>cleartool ls1.txt@@\main\1 Rule: \main\LATESTtest@@\main\1 Rule: \main\LATESTZ:\test\zy\1>cleartoolcleartool> ls1.txt@@\main\1 Rule: \main\LATESTtest@@\main\1 Rule: \main\LATESTcleartool> quitZ:\test\zy\1>
例子:
使用cleartool ls子命令列出当前目录中的所有元素:
Z:\test\zy\1>cleartool ls1.txt@@\main\1 Rule: \main\LATESTtest@@\main\1 Rule: \main\LATESTZ:\test\zy\1>cleartoolcleartool> ls1.txt@@\main\1 Rule: \main\LATESTtest@@\main\1 Rule: \main\LATESTcleartool> quitZ:\test\zy\1>
ClearCaseClearCaseClearCase
命令行界面(CLI)注释选项命令行界面(CLI)注释选项
所有接受注释语句的命令都识别相同的选项:
-c “comment string”为所有创建的事件记录指定一条注释
-cq 提示用户为所有要创建的事件记录输入一条注释
-cqe 对每个要处理的对象,提示输入一条注释
-nc 不输入注释
-cfile pname 指定一个包含注释的文件
所有接受注释语句的命令都识别相同的选项:
-c “comment string”为所有创建的事件记录指定一条注释
-cq 提示用户为所有要创建的事件记录输入一条注释
-cqe 对每个要处理的对象,提示输入一条注释
-nc 不输入注释
-cfile pname 指定一个包含注释的文件
ClearCaseClearCaseClearCase
更改注释语句更改注释语句
Check in的注释语句可以通过Properties of Version进行修改。Check in的注释语句可以通过Properties of Version进行修改。
ClearCaseClearCaseClearCase
Windows环境下ClearCase的使用Windows环境下ClearCase的使用
使用ClearCase图形界面
使用ClearCase命令行界面
获得ClearCase信息
访问文档和帮助
使用ClearCase图形界面
使用ClearCase命令行界面
获得ClearCase信息
访问文档和帮助
ClearCaseClearCaseClearCase
从ClearCase Explorer中显示历史信息从ClearCase Explorer中显示历史信息
ClearCaseClearCaseClearCase
定制历史信息显示定制历史信息显示
用户可以决定哪些字段要显示。用户可以决定哪些字段要显示。
ClearCaseClearCaseClearCase
使用CLI显示元素的历史信息使用CLI显示元素的历史信息
Cleartool lshistory 命令:
按照时间逆序列出事件记录
描述影响到VOB数据的ClearCase操作
可以列出有关元素(elements)、分支(branches)、版本(version)和链接(links)的记录
Cleartool lshistory 命令:
按照时间逆序列出事件记录
描述影响到VOB数据的ClearCase操作
可以列出有关元素(elements)、分支(branches)、版本(version)和链接(links)的记录
ClearCaseClearCaseClearCase
使用CLI显示元素的历史信息使用CLI显示元素的历史信息
ClearCaseClearCaseClearCase
列出视图私有文件列出视图私有文件
Cleartool lsprivate [-tag view-tag][-invob vob-selector] [-long | -short] [-co][-size] [-age] [-co] [-do] [-other]
Cleartool lsprivate [-tag view-tag][-invob vob-selector] [-long | -short] [-co][-size] [-age] [-co] [-do] [-other]
列出一个视图私有存储区中的所有VOB的对象
视图私有文件、目录和链接
未共享的derived objects元素的checked-out版本
cleartool> lsprivate -invob \test -co\test\1\1.txt [checkedout]Snapshot views不支持该命令
列出一个视图私有存储区中的所有VOB的对象
视图私有文件、目录和链接
未共享的derived objects元素的checked-out版本
cleartool> lsprivate -invob \test -co\test\1\1.txt [checkedout]Snapshot views不支持该命令
ClearCaseClearCaseClearCase
列出视图私有文件列出视图私有文件
使用cleartool lsview –full –properties命令显示一个view的属性
创建日期和时间
近的访问信息
近的修改信息
近的配置规则更新信息
近的derived objects升级信息
该视图的保护模式
使用cleartool lsview –full –properties命令显示一个view的属性
创建日期和时间
近的访问信息
近的修改信息
近的配置规则更新信息
近的derived objects升级信息
该视图的保护模式
ClearCaseClearCaseClearCase
Windows环境下ClearCase的使用Windows环境下ClearCase的使用
使用ClearCase图形接口
使用ClearCase命令行接口
获得ClearCase信息
访问文档和帮助
使用ClearCase图形接口
使用ClearCase命令行接口
获得ClearCase信息
访问文档和帮助
ClearCaseClearCaseClearCase
获得在线帮助获得在线帮助
获得上下文相关帮助可以通过按F1键或Help按钮
可以通过以下方式获得在线帮助
Help菜单
ClearCase程序组中的“ClearCase Help”图标
ClearCase Explorer Help
获得上下文相关帮助可以通过按F1键或Help按钮
可以通过以下方式获得在线帮助
Help菜单
ClearCase程序组中的“ClearCase Help”图标
ClearCase Explorer Help
ClearCaseClearCaseClearCase
文件:在线帮助手册文件:在线帮助手册
ClearCaseClearCaseClearCase
开始使用ClearCase开始使用ClearCase
ClearCaseClearCaseClearCase
主题主题
版本树(Version Trees)创建新的文件元素
版本扩展名
视图私有文件
版本树(Version Trees)创建新的文件元素
版本扩展名
视图私有文件
ClearCaseClearCaseClearCase
目标目标
通过学习本章,应该能够:
描述ClearCase如何表示元素的版本
创建新的文件元素
使用版本扩展名
区分一个ClearCase版本化文件和一个视图私有文件
通过学习本章,应该能够:
描述ClearCase如何表示元素的版本
创建新的文件元素
使用版本扩展名
区分一个ClearCase版本化文件和一个视图私有文件
ClearCaseClearCaseClearCase
开始使用ClearCase开始使用ClearCase
版本树(Version Trees)创建新的文件元素
版本扩展名
视图私有文件
版本树(Version Trees)创建新的文件元素
版本扩展名
视图私有文件
ClearCaseClearCaseClearCase
版本树(Version Tree)版本树(Version Tree)Hello.c\main
1
0
2V1.1
1
0
2
1
0
21
0
\zy_test
\v1.1_bugs\critical
3
1
0
4
一个版本树是一个元素的分级表现方式,其中所有的版本都被逻辑地组织在一起。
一个版本号表示一个在版本树中的一个唯一位置:hello.c@@\main\v1.1_bugs\critical\2
一个版本树是一个元素的分级表现方式,其中所有的版本都被逻辑地组织在一起。
一个版本号表示一个在版本树中的一个唯一位置:hello.c@@\main\v1.1_bugs\critical\2
ClearCaseClearCaseClearCase
列出版本化文件列出版本化文件
通常,文件版本以标准Windows文件方式显示:J:\project_hw\src>dirMakefilehello.chello.hutil.c
在幕后,ClearCase将版本映射到那些文件:J:\project_hw\src>cleartool lsMakefile@@\main\2 Rule:\main\LATESThello.c@@\main\3 Rule:\main\LATEST hello.h @@\main\1 Rule:\main\LATEST util.c @@\main\3 Rule:\main\LATEST
通常,文件版本以标准Windows文件方式显示:J:\project_hw\src>dirMakefilehello.chello.hutil.c
在幕后,ClearCase将版本映射到那些文件:J:\project_hw\src>cleartool lsMakefile@@\main\2 Rule:\main\LATESThello.c@@\main\3 Rule:\main\LATEST hello.h @@\main\1 Rule:\main\LATEST util.c @@\main\3 Rule:\main\LATEST
ClearCaseClearCaseClearCase
CLI 图形选项CLI 图形选项
cleartool lsvtree -graphical [-all] [-nmerge][-nco] [-options pass-through-opts] pname …
cleartool lsvtree -graphical [-all] [-nmerge][-nco] [-options pass-through-opts] pname …
为每一个元素产生一个图形的版本树浏览器
显示所有的版本或只是重要的版本
使用箭头显示一个元素版本间的归并(merges)
举例:J:\project_hw\src\cleartool lsvtree -graphical hello.c
为每一个元素产生一个图形的版本树浏览器
显示所有的版本或只是重要的版本
使用箭头显示一个元素版本间的归并(merges)
举例:J:\project_hw\src\cleartool lsvtree -graphical hello.c
ClearCaseClearCaseClearCase
定制显示定制显示
可以使用View菜单来定制哪些版本要在版本树浏览器中显示。
可以使用Tools->Options菜单来确定图形/文字的字体和颜色。
可以使用View菜单来定制哪些版本要在版本树浏览器中显示。
可以使用Tools->Options菜单来确定图形/文字的字体和颜色。
ClearCaseClearCaseClearCase
lsvtree命令lsvtree命令
lsvtree [-nrecurse] [-short] [-all] [-merge][-nco] [-obsolete] [-branch branch-pname] pname …lsvtree [-nrecurse] [-short] [-all] [-merge][-nco] [-obsolete] [-branch branch-pname] pname …
\main
缺省情况下,lsvtree显示所有分支名,但是只有“重要的”元素版本,其定义如下:
所有分支上的 新版本
打标签(Label)的版本
分支点上的版本
一个超链接(hyperlink)两端的版本(主要是归并-Merge)
缺省情况下,lsvtree显示所有分支名,但是只有“重要的”元素版本,其定义如下:
所有分支上的 新版本
打标签(Label)的版本
分支点上的版本
一个超链接(hyperlink)两端的版本(主要是归并-Merge)
1
0
\rel2_bugfix
2
REL2
3
1
0
4 REL3
ClearCaseClearCaseClearCase
CLI 举例:列出一个版本树CLI 举例:列出一个版本树
J:\test\src>cleartool lsvtree hello.chello.c@@\mainhello.c@@\main\1 (REL2)hello.c@@\main\rel2_bugfixhello.c@@\main\rel2_bugfix\1hello.c@@\main\3 (REL3)
J:\test\src>cleartool lsvtree –all hello.chello.c@@\mainhello.c@@\main\0hello.c@@\main\1 (REL2)hello.c@@\main\rel2_bugfixhello.c@@\main\rel2_bugfix\0 hello.c@@\main\rel2_bugfix\1hello.c@@\main\2 hello.c@@\main\3 (REL3)
J:\test\src>cleartool lsvtree hello.chello.c@@\mainhello.c@@\main\1 (REL2)hello.c@@\main\rel2_bugfixhello.c@@\main\rel2_bugfix\1hello.c@@\main\3 (REL3)
J:\test\src>cleartool lsvtree –all hello.chello.c@@\mainhello.c@@\main\0hello.c@@\main\1 (REL2)hello.c@@\main\rel2_bugfixhello.c@@\main\rel2_bugfix\0 hello.c@@\main\rel2_bugfix\1hello.c@@\main\2 hello.c@@\main\3 (REL3)
ClearCaseClearCaseClearCase
元素类型(Element Types)元素类型(Element Types)
元素类型决定了一个文件如何存储、取得、比较和归并
有些元素类型可以用相同的格式(HTML/XML)存储,但比较和归并是不同的
每一个元素都有一个分配给它的元素类型
ClearCase提供几种预定义的元素类型
元素类型决定了一个文件如何存储、取得、比较和归并
有些元素类型可以用相同的格式(HTML/XML)存储,但比较和归并是不同的
每一个元素都有一个分配给它的元素类型
ClearCase提供几种预定义的元素类型
ClearCaseClearCaseClearCase
预定义元素类型预定义元素类型
ClearCaseClearCaseClearCase
开始使用ClearCase开始使用ClearCase
版本树(Version Trees)创建新的文件元素
版本扩展名
视图私有文件
版本树(Version Trees)创建新的文件元素
版本扩展名
视图私有文件
ClearCaseClearCaseClearCase
创建文件元素创建文件元素
ClearCaseClearCaseClearCase
创建文件元素创建文件元素
J:\test\src>cleartool co -c "Adding readme file." .Checked out "." from version "\main\3".
J:\test\src>cleartool mkelem -c "Documentation for hello" readme.txtCreated element "readme.txt" (type "text_file").Checked out "readme.txt " from version "\main\0".
J:\test\src>cleartool ci -nc .Checked in "." from version "\main\4".
J:\test\src>cleartool co -c "Adding readme file." .Checked out "." from version "\main\3".
J:\test\src>cleartool mkelem -c "Documentation for hello" readme.txtCreated element "readme.txt" (type "text_file").Checked out "readme.txt " from version "\main\0".
J:\test\src>cleartool ci -nc .Checked in "." from version "\main\4".
ClearCaseClearCaseClearCase
Adding Existing Files to Source ControlAdding Existing Files to Source Control
Cleartool mkelem
J:\test\src>cleartool mkelem -c "Adding files to source control" foo.c foo.h bar.cCreated element "foo.c" (type "text_file").Checked out "foo.c " from version "\main\0".Created element "foo.h" (type "text_file").Checked out "foo.h" from version "\main\0". Created element "bar.c" (type "text_file").Checked out "bar.c" from version "\main\0".
Cleartool mkelem
J:\test\src>cleartool mkelem -c "Adding files to source control" foo.c foo.h bar.cCreated element "foo.c" (type "text_file").Checked out "foo.c " from version "\main\0".Created element "foo.h" (type "text_file").Checked out "foo.h" from version "\main\0". Created element "bar.c" (type "text_file").Checked out "bar.c" from version "\main\0".
ClearCaseClearCaseClearCase
Adding Existing Files to Source Control (续)Adding Existing Files to Source Control (续)
Clearfsimport程序能够将文件系统的目录和文件转化为ClearCase元素
Clearexport_ffile和clearimport二者功能的合并
创建新的元素,或将新的版本添加到已存在的元素
例子:J:\test>clearfsimport -recurse d:\code\src .
Clearfsimport程序能够将文件系统的目录和文件转化为ClearCase元素
Clearexport_ffile和clearimport二者功能的合并
创建新的元素,或将新的版本添加到已存在的元素
例子:J:\test>clearfsimport -recurse d:\code\src .
ClearCaseClearCaseClearCase
开始使用ClearCase开始使用ClearCase
版本树(Version Trees)创建新的文件元素
版本扩展名
视图私有文件
版本树(Version Trees)创建新的文件元素
版本扩展名
视图私有文件
ClearCaseClearCaseClearCase
版本扩展名版本扩展名
能够使你指定一个可能在动态视图中不可见的版本
@@(扩展名符号)指示了一个元素的版本树上的路径指定整数版本hello.h@@\main\rel2_bugfix\9用户定义的版本标签util.c@@REL3特定的ClearCase维护的标签chap1.doc@@\main\LATEST
能够使你指定一个可能在动态视图中不可见的版本
@@(扩展名符号)指示了一个元素的版本树上的路径指定整数版本hello.h@@\main\rel2_bugfix\9用户定义的版本标签util.c@@REL3特定的ClearCase维护的标签chap1.doc@@\main\LATEST
ClearCaseClearCaseClearCase
PathnamesPathnames
一个View所选中的版本z:\test> type hello.cint main() {
printf (“Hello, this is the version of your view.\n”);return 0;
}一个非View所选中的版本z:\test> type hello.c@@\main\1main() {
printf(“Hello there, world!\n”);}
一个View所选中的版本z:\test> type hello.cint main() {
printf (“Hello, this is the version of your view.\n”);return 0;
}一个非View所选中的版本z:\test> type hello.c@@\main\1main() {
printf(“Hello there, world!\n”);}
ClearCaseClearCaseClearCase
开始使用ClearCase开始使用ClearCase
版本树(Version Trees)创建新的文件元素
版本扩展名
视图私有文件
版本树(Version Trees)创建新的文件元素
版本扩展名
视图私有文件
ClearCaseClearCaseClearCase
视图私有文件和视图私有目录视图私有文件和视图私有目录
视图私有文件和视图私有目录在VOB的目录中是可见的,但没有被版本化
只能被创建它们的视图所访问
包括临时文件和目录,checked-out文件,DO
视图私有文件和视图私有目录在VOB的目录中是可见的,但没有被版本化
只能被创建它们的视图所访问
包括临时文件和目录,checked-out文件,DO
src
foo.c foo.h
bar.c
src
foo.c foo.h
bar.c
Config Spec
test.txt test.txt
ClearCaseClearCaseClearCase
列出视图私有文件列出视图私有文件
cleartool lsprivate [-tag view-tag][-invob vob-selector] [-l\ong | -s\hort] [-co][-size] [-age] [-co] [-do] [-oth\er]
cleartool lsprivate [-tag view-tag][-invob vob-selector] [-l\ong | -s\hort] [-co][-size] [-age] [-co] [-do] [-oth\er]
列出一个视图私有存储区中的所有VOB的对象
视图私有文件、目录和链接
未共享的DO元素的checked-out版本
Z:\test\src>cleartool lsprivate\test\src\1\test\src\test.txt\test\src\foo.c [checkedout]此命令不支持快照视图
列出一个视图私有存储区中的所有VOB的对象
视图私有文件、目录和链接
未共享的DO元素的checked-out版本
Z:\test\src>cleartool lsprivate\test\src\1\test\src\test.txt\test\src\foo.c [checkedout]此命令不支持快照视图
ClearCaseClearCaseClearCase
使用ClearCase进行软件开发使用ClearCase进行软件开发
ClearCaseClearCaseClearCase
主题主题
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
ClearCaseClearCaseClearCase
目标目标
通过学习本章,应该能够:
检出版本(Checking Out Versions)解释目录元素如何提供结构
改变Checkout状态
比较版本
检入版本(Checking In Versions)解释删除元素的含意
通过学习本章,应该能够:
检出版本(Checking Out Versions)解释目录元素如何提供结构
改变Checkout状态
比较版本
检入版本(Checking In Versions)解释删除元素的含意
ClearCaseClearCaseClearCase
使用ClearCase进行软件开发使用ClearCase进行软件开发
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
ClearCaseClearCaseClearCase
元素保护模式元素保护模式
文件元素在检出(checked out)之前是只读的
ClearCase通过附属修改功能来保护VOB中的版本,即使是Administrator
一个动态视图的例子:
Z:\test\src>attrib foo.cR Z:\test\src\foo.c
Z:\test\src>del foo.cZ:\test\src\foo.c拒绝访问。
Z:\test\src>attrib -r foo.c 无法更改属性 - Z:\test\src\foo.c
文件元素在检出(checked out)之前是只读的
ClearCase通过附属修改功能来保护VOB中的版本,即使是Administrator
一个动态视图的例子:
Z:\test\src>attrib foo.cR Z:\test\src\foo.c
Z:\test\src>del foo.cZ:\test\src\foo.c拒绝访问。
Z:\test\src>attrib -r foo.c 无法更改属性 - Z:\test\src\foo.c
ClearCaseClearCaseClearCase
检出(Checking Out)检出(Checking Out)
对于所有的视图:
得到一个有写权利的文件的拷贝
当使用GUI时,你对目录的变动可以是自动的;当使用CLI时,你必须要check out该目录
对于所有的视图:
得到一个有写权利的文件的拷贝
当使用GUI时,你对目录的变动可以是自动的;当使用CLI时,你必须要check out该目录
ClearCaseClearCaseClearCase
Checkout之前Checkout之前
src
foo.c foo.h
bar.c
src
foo.c foo.h
bar.c
Config Spec
read onlyread only
read only
ClearCaseClearCaseClearCase
Checkout过程中发生了什么?Checkout过程中发生了什么?
文件被检出到一个视图,并且在视图私有存储区创建一个可修改的版本
创建一个事件记录
创建一个占位符,作为可能的后续版本
工作在同一个视图的用户能够查看该文件的checked-out版本的内容
文件被检出到一个视图,并且在视图私有存储区创建一个可修改的版本
创建一个事件记录
创建一个占位符,作为可能的后续版本
工作在同一个视图的用户能够查看该文件的checked-out版本的内容
2
3
占位符
ClearCaseClearCaseClearCase
Check OutCheck Out
ClearCaseClearCaseClearCase
Reserved Check OutReserved Check Out
缺省选择
Check确认
ClearCaseClearCaseClearCase
快照视图中的checkout快照视图中的checkout
如果快照视图中的拷贝不是可得到的 新版本,你会得到一个选择。
如果快照视图中的拷贝不是可得到的 新版本,你会得到一个选择。
ClearCaseClearCaseClearCase
使用CLI进行checkout使用CLI进行checkout
Z:\test\src>cleartool checkout bar.cCheckout comments for "bar.c":Bug fixing.Checked out "bar.c" from version "\main\3".
Z:\test\src>cleartool checkout bar.cCheckout comments for "bar.c":Bug fixing.Checked out "bar.c" from version "\main\3".
ClearCaseClearCaseClearCase
Checkout之后Checkout之后
src
foo.c
bar.c
src
foo.c foo.h
bar.cConfig Spec
read onlyread only
read\write
foo.h
View Storage
bar.c
ClearCaseClearCaseClearCase
Finding CheckoutsFinding Checkouts
使用Find Checkout工具能够使用户基于用户定义标准来搜索checkouts。使用Find Checkout工具能够使用户基于用户定义标准来搜索checkouts。
ClearCaseClearCaseClearCase
Finding Checkouts(续)Finding Checkouts(续)
基于所选择的标准,显示checked out文件的列表。基于所选择的标准,显示checked out文件的列表。
ClearCaseClearCaseClearCase
确定谁有Checkouts确定谁有Checkouts
-me | -user限定一个指定登录名Z:\test\src>cleartool lsco -me
-cview限定当前视图
-all列出VOB中所有目录的 checkouts,而不仅是当前目录的
-long列出checkout注释和视图存储区
-me | -user限定一个指定登录名Z:\test\src>cleartool lsco -me
-cview限定当前视图
-all列出VOB中所有目录的 checkouts,而不仅是当前目录的
-long列出checkout注释和视图存储区
ClearCaseClearCaseClearCase
确定谁有Checkouts(续)确定谁有Checkouts(续)
Z:\test\src>cleartool lsco -long07-一月-03.15:42:27 zhangyong.nc_qm@zhangyong
checkout version "bar.c" from \main\3 (reserved)by view: MRP_view
("scmserver:D:\MRP_View\PDOMAIN\zhangyong\MRP_view.vws")"Bug fixing"
07-一月-03.16:05:36 zhangyong.nc_qm@zhangyongcheckout version "foo.c" from \main\2 (reserved)by view: MRP_view
("scmserver:D:\MRP_View\PDOMAIN\zhangyong\MRP_view.vws")
Z:\test\src>cleartool lsco -long07-一月-03.15:42:27 zhangyong.nc_qm@zhangyong
checkout version "bar.c" from \main\3 (reserved)by view: MRP_view
("scmserver:D:\MRP_View\PDOMAIN\zhangyong\MRP_view.vws")"Bug fixing"
07-一月-03.16:05:36 zhangyong.nc_qm@zhangyongcheckout version "foo.c" from \main\2 (reserved)by view: MRP_view
("scmserver:D:\MRP_View\PDOMAIN\zhangyong\MRP_view.vws")
ClearCaseClearCaseClearCase
Checkout类型Checkout类型
Reserved checkout:确保在reserved checkout进行checkin或取消(使用Undo checkout)前,没有checkin能进行
只有在没有其它reserved checkout存在时才能够进行
Unreserved checkout可以忽略该版本的其它checkout的状态进行
如果期间没有进行reserved checkout,并且没有其它unreserved checkout已经checked in,可以被checked in如果任何checkin已经发生了,必须进行归并或放弃
Reserved checkout:确保在reserved checkout进行checkin或取消(使用Undo checkout)前,没有checkin能进行
只有在没有其它reserved checkout存在时才能够进行
Unreserved checkout可以忽略该版本的其它checkout的状态进行
如果期间没有进行reserved checkout,并且没有其它unreserved checkout已经checked in,可以被checked in如果任何checkin已经发生了,必须进行归并或放弃
ClearCaseClearCaseClearCase
Checkout类型(举例)Checkout类型(举例)
UNRESERVED CheckoutUNRESERVED CheckoutRESERVED CheckoutRESERVED Checkout
3
R
Checkout (2)Checkout (2)
3
R
UCheckout
(1)Checkout
(1)Checkout(1)
Checkout(1)
3
4
U
5
Checkout (2)Checkout (2)
Merge(4)
Merge(4)
Checkin (5)Checkin (5)
3
4
Checkin(3)
Checkin(3)
Checkin(2)
Checkin(2)
ClearCaseClearCaseClearCase
获得一个Unreserved Checkout获得一个Unreserved Checkout
如果一个版本已被checked out reserved,当在另一个视图中进行check out时,将会出现一个确认窗口。
如果一个版本已被checked out reserved,当在另一个视图中进行check out时,将会出现一个确认窗口。
ClearCaseClearCaseClearCase
单个元素单个元素
版本树浏览器显示了元素的reserved和unreserved checkouts。版本树浏览器显示了元素的reserved和unreserved checkouts。
ClearCaseClearCaseClearCase
选择Checkout类型选择Checkout类型
你可以通过在Check Out对话框中选中Unreserved if already reserved checkbox来避免这个错误。
你可以通过在Check Out对话框中选中Unreserved if already reserved checkbox来避免这个错误。
ClearCaseClearCaseClearCase
使用ClearCase进行软件开发使用ClearCase进行软件开发
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
ClearCaseClearCaseClearCase
创建目录创建目录
ClearCaseClearCaseClearCase
创建目录 —— CLI创建目录 —— CLI
Z:\test>cleartool co -c "Add include directory" .Checked out ". " from version "\main\2".
Z:\test>cleartool mkdir -c "Directory for include files " include Created directory element "include".Checked out "include" from version "\main\0".
使用CLI添加目录元素,需要将两级目录都check in
Z:\test>cleartool co -c "Add include directory" .Checked out ". " from version "\main\2".
Z:\test>cleartool mkdir -c "Directory for include files " include Created directory element "include".Checked out "include" from version "\main\0".
使用CLI添加目录元素,需要将两级目录都check in
ClearCaseClearCaseClearCase
改变目录改变目录
对目录命名空间的任何变化都会创建一个新的目录版本
创建一个新的目录版本,必须执行checkout/checkin如果你只是改变一个文件的内容,目录不需要被checked out
对目录命名空间的任何变化都会创建一个新的目录版本
创建一个新的目录版本,必须执行checkout/checkin如果你只是改变一个文件的内容,目录不需要被checked out
ClearCaseClearCaseClearCase
改变目录的操作改变目录的操作
增加新的文件
重新命名已存在的文件
删除文件
增加新的子目录
移动文件或子目录
增加或删除VOB links
增加新的文件
重新命名已存在的文件
删除文件
增加新的子目录
移动文件或子目录
增加或删除VOB links
ClearCaseClearCaseClearCase
查看目录版本查看目录版本
与文件元素一样,目录也有版本树
目录版本可以使用版本扩展名列示出来
一个目录版本是一个列表或目录,包含文件元素的名字
与文件元素一样,目录也有版本树
目录版本可以使用版本扩展名列示出来
一个目录版本是一个列表或目录,包含文件元素的名字
ClearCaseClearCaseClearCase
Cleartool mkdir 命令Cleartool mkdir 命令
cleartool mkdir [-nco] [-c comment | -cfilecomment-file-pname | -cq | -cqe | -nc] dir-pname
cleartool mkdir [-nco] [-c comment | -cfilecomment-file-pname | -cq | -cqe | -nc] dir-pname
缺省情况下,当创建一个目录元素时,如果不指定-nco,cleartool会自动地check out 零版本
Z:\test>cleartool mkdir docCreation comments for "doc":New directory for documentation files.Created directory element "doc".Checked out "doc" from version "\main\0".
缺省情况下,当创建一个目录元素时,如果不指定-nco,cleartool会自动地check out 零版本
Z:\test>cleartool mkdir docCreation comments for "doc":New directory for documentation files.Created directory element "doc".Checked out "doc" from version "\main\0".
ClearCaseClearCaseClearCase
Orphaned ElementsOrphaned Elements
一个orphaned element是一个与ClearCase目录系统失去连接的元素。
这种情况在一个目录被删除,而其中的文件没有被删除时发生。
一个orphaned element是一个与ClearCase目录系统失去连接的元素。
这种情况在一个目录被删除,而其中的文件没有被删除时发生。
ClearCaseClearCaseClearCase
移动元素:举例移动元素:举例
在ClearCase Explorer中,你可以使用拖放(drag and drop)来移动元素。在ClearCase Explorer中,你可以使用拖放(drag and drop)来移动元素。
ClearCaseClearCaseClearCase
移动元素 —— CLI移动元素 —— CLI
Z:\test>cleartool co -nc srcChecked out "src" from version "\main\3".
Z:\test>cleartool co -nc docChecked out "doc" from version "\main\1".
Z:\test>cd src
Z:\test\src>cleartool mv query.doc ..\docMoved "query.doc" to "..\doc\query.doc".
Z:\test>cleartool co -nc srcChecked out "src" from version "\main\3".
Z:\test>cleartool co -nc docChecked out "doc" from version "\main\1".
Z:\test>cd src
Z:\test\src>cleartool mv query.doc ..\docMoved "query.doc" to "..\doc\query.doc".
ClearCaseClearCaseClearCase
移动元素的结果移动元素的结果
通过src目录的当前版本和前一个版本的比较,可以看到query.doc文件不在列表中了。
通过src目录的当前版本和前一个版本的比较,可以看到query.doc文件不在列表中了。
ClearCaseClearCaseClearCase
使用ClearCase进行软件开发使用ClearCase进行软件开发
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
ClearCaseClearCaseClearCase
改变Checkout状态改变Checkout状态
ClearCaseClearCaseClearCase
改变Checkout状态改变Checkout状态
cleartool reserve [-c comment | -cfile comment-file-pname | -cq | -cqe| -nc] [-cact | -cwork] pname …cleartool reserve [-c comment | -cfile comment-file-pname | -cq | -cqe| -nc] [-cact | -cwork] pname …
cleartool unreserve [-view [hostname:]view-storage-dir-pname [-cact | -cwork] [-c comment | -cfile comment-file-pname | -cq | -cqe | -nc] pname …
cleartool unreserve [-view [hostname:]view-storage-dir-pname [-cact | -cwork] [-c comment | -cfile comment-file-pname | -cq | -cqe | -nc] pname …
要改变checkout的状态,你必须是以下之一:ClearCase管理员
VOB ownerElement ownerElement group member
你还必须进入到checked out的文件所在的视图中,或者使用unreserved命令的-view选项。
要改变checkout的状态,你必须是以下之一:ClearCase管理员
VOB ownerElement ownerElement group member
你还必须进入到checked out的文件所在的视图中,或者使用unreserved命令的-view选项。
ClearCaseClearCaseClearCase
改变Checkout状态:举例改变Checkout状态:举例
Z:\test\src>cleartool lsco -long08-一月-03.10:24:10 zhangyong.nc_qm@zhangyongcheckout version "bar.c" from \main\3 (unreserved)by view: zhangyong_view3("scmserver:D:\Views\PDOMAIN\zhangyong\zhangyong_view.vws")09-一月-03.13:29:01 zhangyong.nc_qm@zhangyongcheckout version "bar.c" from \main\3 (reserved) by view: MRP_view ("scmserver:D:\MRP_View\PDOMAIN\zhangyong\MRP_view.vws")
Z:\test\src>cleartool unreserve bar.cChanged checkout to unreserved for "bar.c" branch "\main".
Z:\test\src>cleartool reserve bar.cChanged checkout to reserved for "bar.c" branch "\main".
Z:\test\src>cleartool lsco -long08-一月-03.10:24:10 zhangyong.nc_qm@zhangyongcheckout version "bar.c" from \main\3 (unreserved)by view: zhangyong_view3("scmserver:D:\Views\PDOMAIN\zhangyong\zhangyong_view.vws")09-一月-03.13:29:01 zhangyong.nc_qm@zhangyongcheckout version "bar.c" from \main\3 (reserved) by view: MRP_view ("scmserver:D:\MRP_View\PDOMAIN\zhangyong\MRP_view.vws")
Z:\test\src>cleartool unreserve bar.cChanged checkout to unreserved for "bar.c" branch "\main".
Z:\test\src>cleartool reserve bar.cChanged checkout to reserved for "bar.c" branch "\main".
ClearCaseClearCaseClearCase
改变Checkout状态(续)改变Checkout状态(续)
使用-view选项:
Y:\test\src>cleartool unreserve -viewscmserver:D:\MRP_View\PDOMAIN\zhangyong\MRP_view.vws bar.cChanged checkout to unreserved for "bar.c" branch "\main".
使用-view选项:
Y:\test\src>cleartool unreserve -viewscmserver:D:\MRP_View\PDOMAIN\zhangyong\MRP_view.vws bar.cChanged checkout to unreserved for "bar.c" branch "\main".
ClearCaseClearCaseClearCase
Canceling a Checkout: Undo CheckoutCanceling a Checkout: Undo Checkout
一旦一个checkout被取消,视图将会选择原来的版本,或先前checked-in版本一旦一个checkout被取消,视图将会选择原来的版本,或先前checked-in版本
ClearCaseClearCaseClearCase
Checkout被取消之后Checkout被取消之后
src
foo.c
bar.c
src
foo.c foo.h
bar.c
Config Spec
foo.h
View Storage
bar.c.keep
bar.c.keep
ClearCaseClearCaseClearCase
lost+found目录lost+found目录
在每一个VOB的 高层目录都有
包含了不再属于任何目录版本的所有元素
在每一个VOB的 高层目录都有
包含了不再属于任何目录版本的所有元素
ClearCaseClearCaseClearCase
Retrieving an Orphaned ElementRetrieving an Orphaned Element
Check out该元素所属的目录
将元素从lost+found中移动到目录中
举例:
Z:\test>cleartool co –nc docZ:\test>cd lost+foundZ:\test\lost+found>cleartool mvquery.doc.96c93d305a5111ceb0200080c880e47f
..\doc\query.docMoved "query.doc.96c93d305a5111ceb0200080c880e47f" to
"..\doc\query.doc".
Check out该元素所属的目录
将元素从lost+found中移动到目录中
举例:
Z:\test>cleartool co –nc docZ:\test>cd lost+foundZ:\test\lost+found>cleartool mvquery.doc.96c93d305a5111ceb0200080c880e47f
..\doc\query.docMoved "query.doc.96c93d305a5111ceb0200080c880e47f" to
"..\doc\query.doc".
ClearCaseClearCaseClearCase
Lost+found目录:举例Lost+found目录:举例
Z:\test>cleartool co –nc docZ:\test>cleartool mkelem –nc doc\query.doc
<modify query.doc and check it in>Z:\test>cleartool unco doccleartool: Warning: Object "query.doc" no longer referenced.cleartool: Warning: Moving object to vob lost+found directory
as "query.doc.96c93d305a5111ceb0200080c880e47f". Checkout cancelled for "src".
Z:\test>cleartool co –nc docZ:\test>cleartool mkelem –nc doc\query.doc
<modify query.doc and check it in>Z:\test>cleartool unco doccleartool: Warning: Object "query.doc" no longer referenced.cleartool: Warning: Moving object to vob lost+found directory
as "query.doc.96c93d305a5111ceb0200080c880e47f". Checkout cancelled for "src".
ClearCaseClearCaseClearCase
使用ClearCase进行软件开发使用ClearCase进行软件开发
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
ClearCaseClearCaseClearCase
版本比较版本比较
将版本进行比较,以确定一个版本和下一个版本直接发生了什么变化。
ClearCase使用图形化和文本的工具来执行文件比较
多可以比较32个文件
可以比较版本化文件和非版本化文件
也可以用来比较Rational Rose Models,XML和HTML文件
将版本进行比较,以确定一个版本和下一个版本直接发生了什么变化。
ClearCase使用图形化和文本的工具来执行文件比较
多可以比较32个文件
可以比较版本化文件和非版本化文件
也可以用来比较Rational Rose Models,XML和HTML文件
ClearCaseClearCaseClearCase
比较目录版本比较目录版本
比较工具可以使你能够并排地查看同一个目录元素的两个不同版本比较工具可以使你能够并排地查看同一个目录元素的两个不同版本
ClearCaseClearCaseClearCase
Comparing with Previous VersionsComparing with Previous Versions
使用Compare with Previous Version命令显示一个图形化的文本文件的比较使用Compare with Previous Version命令显示一个图形化的文本文件的比较
ClearCaseClearCaseClearCase
使用CLI进行文件比较使用CLI进行文件比较
Cleartool diff命令可以 多比较多达32个文本文件Cleartool diff命令可以 多比较多达32个文本文件
ClearCaseClearCaseClearCase
使用CLI进行文件比较(继续)使用CLI进行文件比较(继续)
Cleartool diff命令可以通过-blank_ignore选项来设置忽略空格
在命令行中,任何cleartool diff -option必须使用(“”)。
Cleartool diff命令可以通过-blank_ignore选项来设置忽略空格
在命令行中,任何cleartool diff -option必须使用(“”)。
ClearCaseClearCaseClearCase
使用ClearCase进行软件开发使用ClearCase进行软件开发
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
ClearCaseClearCaseClearCase
Checking in a New VersionChecking in a New Version
增加一个新版本到版本树
从视图存储区中删除文件的可写的拷贝
Checked-in的版本立刻可以被用户从动态视图中得到,快照视图会在下一次update后得到
Checkin操作可以通过以下方式进行:ClearCase Explorer, Windows Explorer, Version Tree Browser, ClearCase supported IDEs, CLI
增加一个新版本到版本树
从视图存储区中删除文件的可写的拷贝
Checked-in的版本立刻可以被用户从动态视图中得到,快照视图会在下一次update后得到
Checkin操作可以通过以下方式进行:ClearCase Explorer, Windows Explorer, Version Tree Browser, ClearCase supported IDEs, CLI
ClearCaseClearCaseClearCase
Checking in VersionsChecking in Versions
ClearCaseClearCaseClearCase
ClearCase checkinClearCase checkin
cleartool checkin | ci[-nwarn] [-cr] [-ptime] [-keep | -rm][-from source-pname] [-identical]
cleartool checkin | ci[-nwarn] [-cr] [-ptime] [-keep | -rm][-from source-pname] [-identical]
增加一个新版本到版本树
从视图存储区中删除文件的可写的拷贝
Checked-in的版本立刻可以被所有用户从所有视图中得到(快照视图需要定期进行update)对于文本文件,如果与先前的版本是相同的,新的版本除非使用-identical选项,否则将不会被checked in
举例:
Z:\test\src>cleartool ci -c "fixed bug 209" foo.c
增加一个新版本到版本树
从视图存储区中删除文件的可写的拷贝
Checked-in的版本立刻可以被所有用户从所有视图中得到(快照视图需要定期进行update)对于文本文件,如果与先前的版本是相同的,新的版本除非使用-identical选项,否则将不会被checked in
举例:
Z:\test\src>cleartool ci -c "fixed bug 209" foo.c
ClearCaseClearCaseClearCase
Object HistoryObject History
一个对象的历史信息被记录在VOB中的事件记录中
一个ClearCase操作,如check out,会引起一个事件记录的创建
事件记录包括事件的信息,如who, what, when, where, 和与事件相关的注释
一个对象的历史信息被记录在VOB中的事件记录中
一个ClearCase操作,如check out,会引起一个事件记录的创建
事件记录包括事件的信息,如who, what, when, where, 和与事件相关的注释
ClearCaseClearCaseClearCase
使用ClearCase进行软件开发使用ClearCase进行软件开发
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
版本检出(Checking Out Versions)目录元素
改变Checkout状态
版本比较
版本检入(Checking In Versions)删除元素
ClearCaseClearCaseClearCase
删除一个版本删除一个版本
cleartool rmver [-force] [-xbranch] [-xlabel][-xattr] [-xhlink] [-date][-version version-selector | -vrange low-version high-version][-c comment | -cfile comment-file-pname | -cq | -cqe | -nc] pname…
cleartool rmver [-force] [-xbranch] [-xlabel][-xattr] [-xhlink] [-date][-version version-selector | -vrange low-version high-version][-c comment | -cfile comment-file-pname | -cq | -cqe | -nc] pname…
从VOB中删除元素的一个或多个版本
删除与所删除版本连接的所有metadata删除所删除版本的所有事件记录
举例:
Z:\test\src>cleartool rmver foo.c@@\main\1Removing these version of "foo.c": \main\1Remove versions? [no] yesRemoved version of "foo.c"
从VOB中删除元素的一个或多个版本
删除与所删除版本连接的所有metadata删除所删除版本的所有事件记录
举例:
Z:\test\src>cleartool rmver foo.c@@\main\1Removing these version of "foo.c": \main\1Remove versions? [no] yesRemoved version of "foo.c"
ClearCaseClearCaseClearCase
Removing Reference to an ElementRemoving Reference to an Element
cleartool rmname [-c comment | -cq | -cqe | -nc] [-nco [ -force]] pname…cleartool rmname [-c comment | -cq | -cqe | -nc] [-nco [ -force]] pname…
从一个目录列表中删除一个元素或VOB symbolic link的名字
该元素仍然在VOB中存在
从一个目录列表中删除一个元素或VOB symbolic link的名字
该元素仍然在VOB中存在
src\main
foo.c\main
bar.c\main
foo.h\main
1
0
1
0
1
0
1
0
2
foo.cfoo.hbar.c
foo.cfoo.h
2
3
2
3
0
1
\bug
reference removed
ClearCaseClearCaseClearCase
删除一个元素删除一个元素
cleartool rmelem [-force] [-c comment | -cfile comment-file-pname| -cq | -cqe | -nc] pname…cleartool rmelem [-force] [-c comment | -cfile comment-file-pname| -cq | -cqe | -nc] pname…
从VOB中完全删除一个元素
在所有相关目录中删除与它的reference不能删除已经有checked-out版本的元素
必须是element owner, VOB owner, 或ClearCase管理员,才能删除一个元素
从VOB中完全删除一个元素
在所有相关目录中删除与它的reference不能删除已经有checked-out版本的元素
必须是element owner, VOB owner, 或ClearCase管理员,才能删除一个元素
1
0
src
2
bar.c
bar.c
1
0
bar.c
2
ClearCaseClearCaseClearCase
删除一个元素:举例删除一个元素:举例
Z:\test\doc>cleartool rmelem query.docCAUTION! This will destroy the element, all its branches and versions,including all data, meta-data and history, and will remove the elementfrom all directory versions that now contain it. Once you destroy theelement, there will be no way to restore it to its current state.If you want to preserve the element, but remove references to it fromfuture directory versions, use the "rmname" command.
Element "query.doc" has 1 branches, 2 versions, and is enteredin 1 directory versions.Destroy element? [no] yesRemoved element "query.doc".
Z:\test\doc>cleartool rmelem query.docCAUTION! This will destroy the element, all its branches and versions,including all data, meta-data and history, and will remove the elementfrom all directory versions that now contain it. Once you destroy theelement, there will be no way to restore it to its current state.If you want to preserve the element, but remove references to it fromfuture directory versions, use the "rmname" command.
Element "query.doc" has 1 branches, 2 versions, and is enteredin 1 directory versions.Destroy element? [no] yesRemoved element "query.doc".
ClearCaseClearCaseClearCase
配置工作空间配置工作空间
ClearCaseClearCaseClearCase
主题主题
配置规则(Configuration Specifications)查看配置规则
改变规则
配置规则(Configuration Specifications)查看配置规则
改变规则
ClearCaseClearCaseClearCase
目标目标
通过学习本章,应该能够:
解释配置规格是如何选取版本的
显示配置规格
修改配置规格
通过学习本章,应该能够:
解释配置规格是如何选取版本的
显示配置规格
修改配置规格
ClearCaseClearCaseClearCase
配置工作空间配置工作空间
配置规格(Configuration Specifications)查看配置规格
改变规则
配置规格(Configuration Specifications)查看配置规格
改变规则
ClearCaseClearCaseClearCase
配置规格(Config Spec)配置规格(Config Spec)
每个视图都有自己的配置规格
决定VOB中元素的哪些版本在视图中是可见的
包含一套顺序的规则,通过动态视图的view_server process不断地被使用
快照视图的规则与动态视图是一样的,除了使用装载规则(load rules)快照视图不是动态地使用配置规格,只有在update和load时使用
每个视图都有自己的配置规格
决定VOB中元素的哪些版本在视图中是可见的
包含一套顺序的规则,通过动态视图的view_server process不断地被使用
快照视图的规则与动态视图是一样的,除了使用装载规则(load rules)快照视图不是动态地使用配置规格,只有在update和load时使用
ClearCaseClearCaseClearCase
配置规则(Config Spec Rules)配置规则(Config Spec Rules)
对每个元素:
规则是按照出现的顺序来使用的
匹配一个版本的第一个规则就是所使用的规则
对每个元素:
规则是按照出现的顺序来使用的
匹配一个版本的第一个规则就是所使用的规则
Default config spec:element * CHECKEDOUTelement * \main\LATEST
Default config spec:element * CHECKEDOUTelement * \main\LATEST
ClearCaseClearCaseClearCase
配置规则定义配置规则定义
<scope> <pattern> <version-selector>element * CHECKEDOUTelement * \main\LATEST
<scope> <pattern> <version-selector>element * CHECKEDOUTelement * \main\LATEST
<scope> = 应用规则的元素的类型
如: element, element -file, element -directory,element –eltype text_file
<pattern> = 元素的名字模式,可以包括通配符。
如:*, *.c, \test\…\*.c<version-selector>
如果scope和pattern匹配时所选择的版本
可以是动态的,如 CHECKEDOUT, \main\LATEST可以是静态的,如 \main\4
<scope> = 应用规则的元素的类型
如: element, element -file, element -directory,element –eltype text_file
<pattern> = 元素的名字模式,可以包括通配符。
如:*, *.c, \test\…\*.c<version-selector>
如果scope和pattern匹配时所选择的版本
可以是动态的,如 CHECKEDOUT, \main\LATEST可以是静态的,如 \main\4
ClearCaseClearCaseClearCase
配置规格举例配置规格举例
缺省配置规格:element * CHECKEDOUTelement * \main\LATEST
查看一个特定的发布版本:element * REL2
维护工作:element * CHECKEDOUTelement * \main\rel_bugfix\LATESTelement * REL2 –mkbranch rel2_bugfix
缺省配置规格:element * CHECKEDOUTelement * \main\LATEST
查看一个特定的发布版本:element * REL2
维护工作:element * CHECKEDOUTelement * \main\rel_bugfix\LATESTelement * REL2 –mkbranch rel2_bugfix
ClearCaseClearCaseClearCase
配置规格举例(续)配置规格举例(续)
修改标签LATEST的含意:element *.h \main\LATEST -time now element * \main\LATEST -time 22-Feb-01.9:00
选择一个特殊时间的版本:element * \main\LATEST -time Friday
不选择元素的checkouts:element * REL1 –nocheckout
激活自动创建分支程序:element * REL2 -mkbranch rel2_bugfix
修改标签LATEST的含意:element *.h \main\LATEST -time now element * \main\LATEST -time 22-Feb-01.9:00
选择一个特殊时间的版本:element * \main\LATEST -time Friday
不选择元素的checkouts:element * REL1 –nocheckout
激活自动创建分支程序:element * REL2 -mkbranch rel2_bugfix
ClearCaseClearCaseClearCase
特殊规则特殊规则
配制规格中的包含规则容许不同的用户共享同一套规则,同时维护他们自己的视图的私有性:element * CHECKEDOUT # the following rules were set up by user1include \\user1\views\users\global\config_spec
一个时间规则修改了后续规则的LATEST的含意:element * CHECKEDOUTtime Tuesday.9:00 element * \main\rel2_bugfix\LATESTelement * \main\LATEST
配制规格中的包含规则容许不同的用户共享同一套规则,同时维护他们自己的视图的私有性:element * CHECKEDOUT # the following rules were set up by user1include \\user1\views\users\global\config_spec
一个时间规则修改了后续规则的LATEST的含意:element * CHECKEDOUTtime Tuesday.9:00 element * \main\rel2_bugfix\LATESTelement * \main\LATEST
ClearCaseClearCaseClearCase
视图私有文件视图私有文件
除了checked-out版本,视图私有文件不受配置规则影响。除了checked-out版本,视图私有文件不受配置规则影响。
src
foo.c
bar.c
src
foo.c foo.h
bar.cfoo.h
View Storage
bar.c.keep
bar.c.keep
View
ClearCaseClearCaseClearCase
配置工作空间配置工作空间
配置规格(Configuration Specifications)查看配置规格
改变规则
配置规格(Configuration Specifications)查看配置规格
改变规则
ClearCaseClearCaseClearCase
查看配置规格查看配置规格
cleartool catcs [-tag view-tag]cleartool catcs [-tag view-tag]
举例:
列出当前视图的配置规格:Z:\test\src>cleartool catcselement * CHECKEDOUTelement * /main/LATEST
列出另一个视图的配置规格:Z:\test\src>cleartool catcs -tag NC2_viewelement * NC2.0
举例:
列出当前视图的配置规格:Z:\test\src>cleartool catcselement * CHECKEDOUTelement * /main/LATEST
列出另一个视图的配置规格:Z:\test\src>cleartool catcs -tag NC2_viewelement * NC2.0
ClearCaseClearCaseClearCase
Cleartool catcs 命令Cleartool catcs 命令
Z:\test\src> cleartool catcselement * CHECKEDOUTelement * /main/LATEST
Z:\test\src> cleartool catcselement * CHECKEDOUTelement * /main/LATEST
src
foo.c
src
foo.c foo.h
bar.c
foo.h
View Storage
bar.c
bar.c
View
ClearCaseClearCaseClearCase
显示和编辑配置规格显示和编辑配置规格
选择Properties of View菜单来查看配置规格
选择Edit按钮来编辑配置规格
选择Properties of View菜单来查看配置规格
选择Edit按钮来编辑配置规格
ClearCaseClearCaseClearCase
错误检测错误检测
ClearCase检测配置规格中的语法错误。ClearCase检测配置规格中的语法错误。
ClearCaseClearCaseClearCase
ClearCase 详细资料ClearCase 详细资料
ClearCaseClearCaseClearCase
配置工作空间配置工作空间
配置规格(Configuration Specifications)查看配置规格
改变规则
配置规格(Configuration Specifications)查看配置规格
改变规则
ClearCaseClearCaseClearCase
重置配置规格重置配置规格
使用cleartool setcs命令改变视图的配置规格:
使用一个用户定义的文件替代当前的配置规格
-default选项将配置规格设置成缺省配置规格
-current选项使view_server重新使用时间规则,重读包含文件
举例:X:\>cleartool setcs cspec_REL2X:\>cleartool setcs -default
使用cleartool setcs命令改变视图的配置规格:
使用一个用户定义的文件替代当前的配置规格
-default选项将配置规格设置成缺省配置规格
-current选项使view_server重新使用时间规则,重读包含文件
举例:X:\>cleartool setcs cspec_REL2X:\>cleartool setcs -default
ClearCaseClearCaseClearCase
修改配置规格修改配置规格
cleartool edcs [-tag view-tag] [pname]cleartool edcs [-tag view-tag] [pname]
激活EDITOR环境变量所指定的编辑器
退出编辑器时,在将配置规格应用到视
激活EDITOR环境变量所指定的编辑器
退出编辑器时,在将配置规格应用到视图前,会执行语法和语义检测图前,会执行语法和语义检测
cleartool setcs [-tag view-tag] [pname]{ -current | -default | pname }
cleartool setcs [-tag view-tag] [pname]{ -current | -default | pname }
将配置规格设置成一个ASCII文件或缺省
也经常设置时间规则来使用当前时间
将配置规格设置成一个ASCII文件或缺省
也经常设置时间规则来使用当前时间
ClearCaseClearCaseClearCase
使用cleartool edcs修改配置规格使用cleartool edcs修改配置规格
X:\> cleartool edcs
编辑配置规格如下:element * CHECKEDOUTelement * \main\rel2_bugfix\LATESTelement * REL2 –mkbranch rel2_bugfix
退出编辑任务:Set config spec for view "test_view"? [yes] yesX:\> cleartool catcselement * CHECKEDOUTelement * \main\rel2_bugfix\LATESTelement * REL2 -mkbranch rel2_bugfix
X:\> cleartool edcs
编辑配置规格如下:element * CHECKEDOUTelement * \main\rel2_bugfix\LATESTelement * REL2 –mkbranch rel2_bugfix
退出编辑任务:Set config spec for view "test_view"? [yes] yesX:\> cleartool catcselement * CHECKEDOUTelement * \main\rel2_bugfix\LATESTelement * REL2 -mkbranch rel2_bugfix
ClearCaseClearCaseClearCase
验证View验证View
使用cleartool ls来验证REL2的版本是否被视图所选中:
X:\> cleartool lsfoo.c@@\main\4 Rule: REL2 -rel2_bugfixfoo.h@@\main\3 Rule: REL2 -rel2_bugfixbar.c@@\main\5 Rule: REL2 -rel2_bugfix
只会对指定的rel2_bugfix分支上的元素版本进行改变
使用cleartool ls来验证REL2的版本是否被视图所选中:
X:\> cleartool lsfoo.c@@\main\4 Rule: REL2 -rel2_bugfixfoo.h@@\main\3 Rule: REL2 -rel2_bugfixbar.c@@\main\5 Rule: REL2 -rel2_bugfix
只会对指定的rel2_bugfix分支上的元素版本进行改变
ClearCaseClearCaseClearCase
ClearCase Element OptionsClearCase Element Options
ClearCaseClearCaseClearCase
查看选择的规则查看选择的规则
ClearCaseClearCaseClearCase
使用分支进行并行开发使用分支进行并行开发
ClearCaseClearCaseClearCase
主题主题
并行开发
创建分支类型和实例
自动创建分支
使用视图Profile
并行开发
创建分支类型和实例
自动创建分支
使用视图Profile
ClearCaseClearCaseClearCase
目标目标
通过学习本章,应该能够:
描述ClearCase如何使用分支进行并行开发
创建分支类型和实例
自动创建一个分支
解释View Profile的用途
通过学习本章,应该能够:
描述ClearCase如何使用分支进行并行开发
创建分支类型和实例
自动创建一个分支
解释View Profile的用途
ClearCaseClearCaseClearCase
使用分支进行并行开发使用分支进行并行开发
并行开发
创建分支类型和实例
自动创建分支
使用视图Profile
并行开发
创建分支类型和实例
自动创建分支
使用视图Profile
ClearCaseClearCaseClearCase
并行开发并行开发
容许多个不同项目在同一时间使用相同的数据来源
控制工作的公共或私有特性
隔离变化临时的,如还未被测试的新功能
永久的,如过时发布版本的一个缺陷修复
组织障碍——在集成期间开发能够进行
容许多个不同项目在同一时间使用相同的数据来源
控制工作的公共或私有特性
隔离变化临时的,如还未被测试的新功能
永久的,如过时发布版本的一个缺陷修复
组织障碍——在集成期间开发能够进行
ClearCaseClearCaseClearCase
在分支上进行工作在分支上进行工作
ClearCaseClearCaseClearCase
使用分支进行并行开发使用分支进行并行开发
并行开发
创建分支类型和实例
自动创建分支
使用视图Profile
并行开发
创建分支类型和实例
自动创建分支
使用视图Profile
ClearCaseClearCaseClearCase
分支类型分支类型
一个用户定义的名字,将会形成版本树中的一个唯一路径名
分支类型的实例能够并且应当被不同的元素来使用
遵循ClearCase的两步元数据范例:1.声明类型,然后
2.创建该类型的一个或多个实例
用于并行开发的分支类型的例子:rel2_bugfix 一个发布版本的缺陷修复zhangyong_exp 一个用户实验性的工作wizard_features 特性的开发
一个用户定义的名字,将会形成版本树中的一个唯一路径名
分支类型的实例能够并且应当被不同的元素来使用
遵循ClearCase的两步元数据范例:1.声明类型,然后
2.创建该类型的一个或多个实例
用于并行开发的分支类型的例子:rel2_bugfix 一个发布版本的缺陷修复zhangyong_exp 一个用户实验性的工作wizard_features 特性的开发
ClearCaseClearCaseClearCase
为什么需要类型?为什么需要类型?
容许变化跨越多个逻辑分类在一起的元素在VOB中建立一致性
集中对分支名的管理控制在开发过程中开发和关闭分支
容许变化跨越多个逻辑分类在一起的元素在VOB中建立一致性
集中对分支名的管理控制在开发过程中开发和关闭分支
foo.c\main
\bugfix
\pvt
bar.c\main
每个版本树都有一个main分支
\bugfix
使用类型/实例方法一致的树结构
bugfix
ClearCaseClearCaseClearCase
分支类型命名规则分支类型命名规则
必须在版本树上形成一个唯一路径名(如\main\bugs\bug404)不能有一个整数名
不能和一个标签类型有相同的名字分支类型和标签类型共享同一个命名空间
建立一些命名规则是明智的做法,如branch_names, LABEL_NAMES
必须在版本树上形成一个唯一路径名(如\main\bugs\bug404)不能有一个整数名
不能和一个标签类型有相同的名字分支类型和标签类型共享同一个命名空间
建立一些命名规则是明智的做法,如branch_names, LABEL_NAMES
每个版本树都有一个main分支
1
0
用户可以创建任意数量的子分支
2
\enh1
0
2
1
0
21
0
\bugs
\bug417
\bug404
3
1
0
4
ClearCaseClearCaseClearCase
查看分支类型查看分支类型
使用Type Explorer列出、创建、重命名、修改和查看分支类型的属性使用Type Explorer列出、创建、重命名、修改和查看分支类型的属性
ClearCaseClearCaseClearCase
声明一个新的分支类型声明一个新的分支类型
通过Type Explorer可以创建新的分支类型通过Type Explorer可以创建新的分支类型
ClearCaseClearCaseClearCase
改变约束改变约束
在分支的属性窗口的Type Details tab容许你改变约束——在一个元素上容许一个分支类型的多个实例,或限制每个元素只能使用一个分支类型的一个实例(缺省)
在分支的属性窗口的Type Details tab容许你改变约束——在一个元素上容许一个分支类型的多个实例,或限制每个元素只能使用一个分支类型的一个实例(缺省)
ClearCaseClearCaseClearCase
创建一个实例创建一个实例
在声明一个分支类型后,你可以将该分支应用到VOB的元素版本上:在配置规格中的-mkbranch子句,通过以下方式实现:• 明确地编辑配置规格,添加规则
• 将一个视图与一个视图Profile联系起来
• 设置视图使用一个私有分支
cleartool mkbranch命令
使用配置规格自动进行分支创建,这是实例化元素上的分支的推荐方法
在声明一个分支类型后,你可以将该分支应用到VOB的元素版本上:在配置规格中的-mkbranch子句,通过以下方式实现:• 明确地编辑配置规格,添加规则
• 将一个视图与一个视图Profile联系起来
• 设置视图使用一个私有分支
cleartool mkbranch命令
使用配置规格自动进行分支创建,这是实例化元素上的分支的推荐方法
ClearCaseClearCaseClearCase
使用分支进行并行开发使用分支进行并行开发
并行开发
创建分支类型和实例
自动创建分支
使用视图Profile
并行开发
创建分支类型和实例
自动创建分支
使用视图Profile
ClearCaseClearCaseClearCase
-mkbranch子句-mkbranch子句
配置规格中的-mkbranch子句在checkout时自动创建分支Rule 1: element * CHECKEDOUTRule 2: element * \main\rel2_bugfix\LATESTRule 3: element * REL2 -mkbranch rel2_bugfixRule #3的解释如下:选择标签REL2标记的一个元素的版本
在checkout REL2版本时,从REL2版本自动创建rel2_bugfix分支
Checkout 分支rel2_bugfix上的0版本
配置规格中的-mkbranch子句在checkout时自动创建分支Rule 1: element * CHECKEDOUTRule 2: element * \main\rel2_bugfix\LATESTRule 3: element * REL2 -mkbranch rel2_bugfixRule #3的解释如下:选择标签REL2标记的一个元素的版本
在checkout REL2版本时,从REL2版本自动创建rel2_bugfix分支
Checkout 分支rel2_bugfix上的0版本
ClearCaseClearCaseClearCase
自动创建一个分支自动创建一个分支
更改配置规格,使得在check out带有REL2标签的元素时,创建一个分支
配置规则选择带有REL2标签的版本,并指示它将变成一个checkout时的分支点
更改配置规格,使得在check out带有REL2标签的元素时,创建一个分支
配置规则选择带有REL2标签的版本,并指示它将变成一个checkout时的分支点
element * CHECKEDOUTelement * \main\rel2_bugfix\LATESTelement * REL2 -mkbranch rel2_bugfix
element * CHECKEDOUTelement * \main\rel2_bugfix\LATESTelement * REL2 -mkbranch rel2_bugfix
ClearCaseClearCaseClearCase
自动创建一个分支(续)自动创建一个分支(续)
Check out 该文件
选中的版本现在是rel2_bugfix分支上的CHECKEDOUT版本
Check out 该文件
选中的版本现在是rel2_bugfix分支上的CHECKEDOUT版本
ClearCaseClearCaseClearCase
自动创建一个分支(续)自动创建一个分支(续)
版本树浏览器显示了新的分支和checked-out版本版本树浏览器显示了新的分支和checked-out版本
ClearCaseClearCaseClearCase
多级自动分支多级自动分支
配置规格可以包含一个“层叠”的-mkbranch规则:Rule 1: element * CHECKEDOUTRule 2: element *
\main\rel2_bugfix\bug_404\LATESTRule 3: element * \main\rel2_bugfix\LATEST
-mkbranch bug_404 Rule 4: element * REL2 -mkbranch rel2_bugfixCheckout连续创建分支,直到新分支上的版本0不被一条-mkbranch子句所选中
配置规格可以包含一个“层叠”的-mkbranch规则:Rule 1: element * CHECKEDOUTRule 2: element *
\main\rel2_bugfix\bug_404\LATESTRule 3: element * \main\rel2_bugfix\LATEST
-mkbranch bug_404 Rule 4: element * REL2 -mkbranch rel2_bugfixCheckout连续创建分支,直到新分支上的版本0不被一条-mkbranch子句所选中
ClearCaseClearCaseClearCase
多级自动分支多级自动分支
ClearCaseClearCaseClearCase
使用分支进行并行开发使用分支进行并行开发
并行开发
创建分支类型和实例
自动创建分支
使用视图Profile
并行开发
创建分支类型和实例
自动创建分支
使用视图Profile
ClearCaseClearCaseClearCase
View ProfilesView Profiles
密封一个开发团队所共享的ClearCase配置模式
自动处理多个并行开发任务
促进ClearCase有效使用的特定模式
保护开发人员免于处理配置规格和分支创建的细节
密封一个开发团队所共享的ClearCase配置模式
自动处理多个并行开发任务
促进ClearCase有效使用的特定模式
保护开发人员免于处理配置规格和分支创建的细节
注意:
View Profiles 在ClearCase LT是不能使用的
注意:
View Profiles 在ClearCase LT是不能使用的
ClearCaseClearCaseClearCase
使用View Profiles并行开发使用View Profiles并行开发
项目经理创建一个View Profile项目团队成员使用他们各自的视图与View Profile连接,确保:
配置规格选择正确的版本
当视图被激活时,VOBs被自动地激活
当View Profile更新时,视图配置规格自动地更新
团队成员可以创建私有分支,将他们的工作与其他人的工作隔离开来
团队成员将私有分支的工作归并到集成分支上
项目经理创建一个View Profile项目团队成员使用他们各自的视图与View Profile连接,确保:
配置规格选择正确的版本
当视图被激活时,VOBs被自动地激活
当View Profile更新时,视图配置规格自动地更新
团队成员可以创建私有分支,将他们的工作与其他人的工作隔离开来
团队成员将私有分支的工作归并到集成分支上
ClearCaseClearCaseClearCase
连接已存在的视图与View Profile连接已存在的视图与View Profile
一个已存在的视图可以与一个View Profile连接一个已存在的视图可以与一个View Profile连接
ClearCaseClearCaseClearCase
连接新的视图与View Profile连接新的视图与View Profile
在视图创建过程中,View Creation Wizard容许你浏览一个View Profiles列表,选择一个和你的工作相关的View Profile
在视图创建过程中,View Creation Wizard容许你浏览一个View Profiles列表,选择一个和你的工作相关的View Profile
ClearCaseClearCaseClearCase
并行开发集成并行开发集成
ClearCaseClearCaseClearCase
主题主题
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCaseClearCaseClearCase
目标目标
通过学习本章,应该能够:
描述ClearCase的归并逻辑
归并目录和文件元素
执行特殊的归并类型
使用Merge Manager进行自动归并
注解代码和产生报告
通过学习本章,应该能够:
描述ClearCase的归并逻辑
归并目录和文件元素
执行特殊的归并类型
使用Merge Manager进行自动归并
注解代码和产生报告
ClearCaseClearCaseClearCase
并行开发集成并行开发集成
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCaseClearCaseClearCase
归并(Merging):概述归并(Merging):概述
对元素的改变很容易地从一个分支传播到另一个分支
ClearCase提供一套丰富的工具集,使归并规程变得较少手动操作
在两个分支间的归并执行后,开发工作可以继续在两个分支上进行
在将来的分支上没有限制,包括频率和方向
对元素的改变很容易地从一个分支传播到另一个分支
ClearCase提供一套丰富的工具集,使归并规程变得较少手动操作
在两个分支间的归并执行后,开发工作可以继续在两个分支上进行
在将来的分支上没有限制,包括频率和方向
ClearCaseClearCaseClearCase
归并特点归并特点
图形化的工具容许使用点击方式
命令行程序提供不同的选项支持定制归并
归并的容量 高达32个Merge Manager程序搜索一组用户定义的版本,并报告所有范围内的需要归并的版本
图形化的工具容许使用点击方式
命令行程序提供不同的选项支持定制归并
归并的容量 高达32个Merge Manager程序搜索一组用户定义的版本,并报告所有范围内的需要归并的版本
ClearCaseClearCaseClearCase
归并特点(续)归并特点(续)
Merge对话框窗口使你能够:查看基点(base)文件和贡献(contributor)文件的内容
查看和编辑归并结果
指定ClearCase何时询问用户干预
重新启动归并过程
直到退出归并窗口,归并过程才会被完成或记录下来
Merge对话框窗口使你能够:查看基点(base)文件和贡献(contributor)文件的内容
查看和编辑归并结果
指定ClearCase何时询问用户干预
重新启动归并过程
直到退出归并窗口,归并过程才会被完成或记录下来
ClearCaseClearCaseClearCase
归并算法归并算法
merge result
A
B
C
D
A
B
Z
?
X
deleted deleted
changed changed
changed changed
conflict
base contrib1 contrib2
n/c
inserted inserted
A
B
C
D
X
A
B
C
D
ClearCaseClearCaseClearCase
集成并行开发集成并行开发
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCaseClearCaseClearCase
确定Base Contributor确定Base Contributor
如果所有contributors是同一个元素的版本,ClearCase确定 近的base contributor来比较和进行自动归并
如果所有contributors不是同一个元素的版本,不会确定base contributor,自动归并不会进行。你会被提示对文件间的每个差异做选择
如果所有contributors是同一个元素的版本,ClearCase确定 近的base contributor来比较和进行自动归并
如果所有contributors不是同一个元素的版本,不会确定base contributor,自动归并不会进行。你会被提示对文件间的每个差异做选择
foo.c\main
foo.c\main
bar.c\main
= contributor versions
= base= ?
ClearCaseClearCaseClearCase
归并的例子归并的例子
在这个例子中
Base是foo.c@@\main\1Contributors是foo.c@@\main\3和foo.c@@\main\rel2_bugfix\1
在这个例子中
Base是foo.c@@\main\1Contributors是foo.c@@\main\3和foo.c@@\main\rel2_bugfix\1
ClearCaseClearCaseClearCase
开始归并开始归并
ClearCaseClearCaseClearCase
归并确认归并确认
ClearCaseClearCaseClearCase
归并结果归并结果
接受、拒绝或编辑所需要的归并行接受、拒绝或编辑所需要的归并行
BaseBase From versionFrom version To versionTo version
Merge resultMerge result
ClearCaseClearCaseClearCase
归并结果归并结果
作为归并结果,ClearCase将已存在的文件命名为file.contrib将归并结果存放在文件的checked-out版本中
使用一个链接在VOB数据库中记录归并
作为归并结果,ClearCase将已存在的文件命名为file.contrib将归并结果存放在文件的checked-out版本中
使用一个链接在VOB数据库中记录归并
ClearCaseClearCaseClearCase
验证归并结果验证归并结果
在执行完成归并操作后,通过版本树浏览器验证归并结果,并且在完成后进行check in在执行完成归并操作后,通过版本树浏览器验证归并结果,并且在完成后进行check in
ClearCaseClearCaseClearCase
集成并行开发集成并行开发
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCaseClearCaseClearCase
归并目录归并目录
每个ClearCase目录元素的版本内容包括文件元素、目录元素和VOB连接
目录归并:
能够处理同一个目录元素的两个或更多的版本——结果是新的目录版本中反映了所有contributor的内容
不能处理两个不同的目录元素(如,src和include不能被归并在一起)
不会留下一个.contrib目录作为归并的证据
每个ClearCase目录元素的版本内容包括文件元素、目录元素和VOB连接
目录归并:
能够处理同一个目录元素的两个或更多的版本——结果是新的目录版本中反映了所有contributor的内容
不能处理两个不同的目录元素(如,src和include不能被归并在一起)
不会留下一个.contrib目录作为归并的证据
ClearCaseClearCaseClearCase
归并目录:举例归并目录:举例
在归并前,src目录的两个分支有不同的内容Z:\test>cleartool ls srcsrc@@\main\LATESTsrc@@\main\LATEST\date.c@@src@@\main\LATEST\hello.c@@src@@\main\LATEST\hello.h@@src@@\main\LATEST\util.c@@
Z:\test>cleartool ls srcsrc@@\main\enhance\LATESTsrc@@\main\enhance\LATEST\clock.c@@src@@\main\enhance\LATEST\hello.c@@src@@\main\enhance\LATEST\hello.h@@src@@\main\enhance\LATEST\util.c@@
在归并前,src目录的两个分支有不同的内容Z:\test>cleartool ls srcsrc@@\main\LATESTsrc@@\main\LATEST\date.c@@src@@\main\LATEST\hello.c@@src@@\main\LATEST\hello.h@@src@@\main\LATEST\util.c@@
Z:\test>cleartool ls srcsrc@@\main\enhance\LATESTsrc@@\main\enhance\LATEST\clock.c@@src@@\main\enhance\LATEST\hello.c@@src@@\main\enhance\LATEST\hello.h@@src@@\main\enhance\LATEST\util.c@@
\main
\enhance
src@@\main\LATESTdate.chello.chello.hutil.c
src@@\main\enhance\LATEST
clock.chello.chello.hutil.c
ClearCaseClearCaseClearCase
归并目录(续)归并目录(续)
执行目录归并:确保配置规格选择了目标版本
确保所有contributor版本都checked inCheck out目录的目标版本
立刻执行归并,不要在checked-out版本中进行任何其它更改
举例:将enhance分支下的 新版本归并到main分支下:
check in src@@\main\enhance\LATEST设置视图规格为缺省:
element * CHECKEDOUTelement * \main\LATEST
check out src@@\main\LATEST
执行目录归并:确保配置规格选择了目标版本
确保所有contributor版本都checked inCheck out目录的目标版本
立刻执行归并,不要在checked-out版本中进行任何其它更改
举例:将enhance分支下的 新版本归并到main分支下:
check in src@@\main\enhance\LATEST设置视图规格为缺省:
element * CHECKEDOUTelement * \main\LATEST
check out src@@\main\LATEST
ClearCaseClearCaseClearCase
归并目录(续)归并目录(续)
在Diff Merge窗口中,可以选择归并目录的变化在Diff Merge窗口中,可以选择归并目录的变化
ClearCaseClearCaseClearCase
目录的内容可以通过Windows Explorer或cleartool ls进行查看
Z:\test>cleartool ls srcsrc@@\main\LATESTsrc@@\main\LATEST\clock.c@@ src@@\main\LATEST\date.c@@src@@\main\LATEST\hello.c@@src@@\main\LATEST\hello.h@@src@@\main\LATEST\util.c@@
目录的内容可以通过Windows Explorer或cleartool ls进行查看
Z:\test>cleartool ls srcsrc@@\main\LATESTsrc@@\main\LATEST\clock.c@@ src@@\main\LATEST\date.c@@src@@\main\LATEST\hello.c@@src@@\main\LATEST\hello.h@@src@@\main\LATEST\util.c@@
归并目录(续)归并目录(续)
\main
\enhancesrc@@\main\
LATESTclock.cdate.chello.chello.hutil.c
ClearCaseClearCaseClearCase
集成并行开发集成并行开发
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCaseClearCaseClearCase
Merging an Unreserved CheckoutMerging an Unreserved Checkout
如果已有后续版本,unreserved checkout不能被checked in,checkin将会显示如下窗口:如果已有后续版本,unreserved checkout不能被checked in,checkin将会显示如下窗口:
unreserved checkout在被checked in之前,必须与新版本进行归并
unreserved checkout在被checked in之前,必须与新版本进行归并
ClearCaseClearCaseClearCase
Merging an Unreserved Checkout(续)Merging an Unreserved Checkout(续)
checkin后归并前 归并后
ClearCaseClearCaseClearCase
集成并行开发集成并行开发
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCaseClearCaseClearCase
Merge Manager-介绍Merge Manager-介绍
当有大量源文件进行频繁地分支和归并时,Merge Manager可以除去并行开发中的大量工作
Merge Manager提供了一个图形界面来确定要归并的文件和执行归并
当有大量源文件进行频繁地分支和归并时,Merge Manager可以除去并行开发中的大量工作
Merge Manager提供了一个图形界面来确定要归并的文件和执行归并
ClearCaseClearCaseClearCase
使用Merge Manager使用Merge Manager
选择一个进行归并的视图,可以是动态视图或快照视图选择一个进行归并的视图,可以是动态视图或快照视图
ClearCaseClearCaseClearCase
使用Merge Manager(续)使用Merge Manager(续)
选择你想要进行归并的元素选择你想要进行归并的元素
ClearCaseClearCaseClearCase
使用Merge Manager(续)使用Merge Manager(续)
选择一个挑选元素版本进行归并的方法选择一个挑选元素版本进行归并的方法
ClearCaseClearCaseClearCase
使用Merge Manager(续)使用Merge Manager(续)
提供归并所需要的额外信息提供归并所需要的额外信息
ClearCaseClearCaseClearCase
使用FindWizard使用FindWizard
当确定你选择的归并准则时,点击Find当确定你选择的归并准则时,点击Find
ClearCaseClearCaseClearCase
检验Merge检验Merge
Properties of Version窗口的Custom tab显示了归并的信息Properties of Version窗口的Custom tab显示了归并的信息
ClearCaseClearCaseClearCase
集成并行开发集成并行开发
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCase的归并概述
归并文件元素
归并目录元素
执行特殊归并类型
自动归并
注解代码和产生报告
ClearCaseClearCaseClearCase
注解代码注解代码
列出一个版本的内容,并注解每一行,指出此行在何时、哪一个版本中被添加
只有text_files或compressed_text_files能被注解
缺省的输出时一个视图私有文件:filename.ann如果使用cleartool annotate产生,输出可以通过-fmt选项来进行多种格式化
列出一个版本的内容,并注解每一行,指出此行在何时、哪一个版本中被添加
只有text_files或compressed_text_files能被注解
缺省的输出时一个视图私有文件:filename.ann如果使用cleartool annotate产生,输出可以通过-fmt选项来进行多种格式化
ClearCaseClearCaseClearCase
Cleartool annotate命令Cleartool annotate命令
Z:\test\src>cleartool annotate util.cAnnotated result written to "util.c.ann".Z:\test\src>cleartool annotate util.cAnnotated result written to "util.c.ann".