ClearCase是一种配置管理工具,由Rational公司开发,是开发小组用来跟踪、管理软件开发过程各个工件的配置管理系统,
ClearCase可以协助开发组织更好地管理软件开发进程。
ClearCase可以和Rational公司的其他软件紧密结合,例如UCM、ClearQuest等等。
ClearCase包括两套:ClearCase LT和ClearCase (MultiSite)。前者可以用于在同一个局域网的开发小组,适合于中小型开发组织;ClearCase
(MultiSite)则适应于分布于不同地理位置、不同局域网的开发小组,适合于大型的开发组织。
因此,一般的公司使用ClearCase LT就足够了。
注:在后续文章中,经常将ClearCase简称为CC。
系统组成
ClearCase LT由ClearCase LT Server和ClearCase LT Client两个部分组成,其中服务器部分负责数据的集中管理;客户端部分则安装在各个需要使用ClearCase服务的机器上,以及主要开发人员的计算机上,属于典型的Client/Server结构。
ClearCase LT Server采用VOB(Versioned Object Base)存储配置管理数据,用户通过视图(VIEW)的方式获取VOB中存储的数据;UCM方式(参见“项目管理”部分)中,主要通过Stream(流)和Activity(活动)管理项目。
VOB、VIEW
VOB是ClearCase存储软件系统各个组成元素的所有版本数据的仓库,一个版本是其中包含的特定文件或目录;VIEW则是通过一定的规则选择出来的各个元素特定版本的集合,用户通过VIEW存取、修改各个元素。
VOB和VIEW的关系如下图所示:
视图有两种类型:快照视图(snapshot view)及动态视图(dynamic
view)。
快照视图,是将CC服务器中的视图内容拷贝到开发人员的机器中,开发人员需要经常与服务器同步以保持数据的一致性,快照视图的好处在于开发人员不必一直通过网络与CC服务器保持连接;动态视图则是动态的将CC服务器中的内容同步到开发人员的机器中,这就要求开发人员一直保持与服务器的网络连接。一般来讲,由管理员决定选用哪种视图。
开发人员的开发涉及到两个视图:开发视图和集成视图。如果用户的名字为pat,参与的项目叫做test,那么两个视图缺省的名字为pat_test和pat_test_integration。
开发视图用于开发人员的开发过程,开发人员在开发视图中完成软件的开发、修改、提交等工作;集成视图的作用是存放开发人员完成的工作,使得开发人员可以通过该视图中的内容对其开发进行验证。
CHECK-IN & CHECK-OUT
像其他配置管理工具一样,ClearCase LT通过Check-in和Check-out的方式实现配置管理。Check-out一个文件时,ClearCase就会在视图中创建该文件的一个可编辑的版本,可以对该文件进行修改;Check-in一个文件时,ClearCase就在VOB中创建该文件的一个新的永久的版本,本地视图中对应的文件就会变成只读属性,无法修改。
基线(Baseline)
在软件开发过程中,可以将各个元素的不同的版本组合成一个基线。通过基线表示软件项目开发达到了一定的要求,也可以说是里程碑。
项目管理员可以根据情况设置相应的基线,并随着项目的发展逐步设置新的基线。
活动(Activity)
活动是开发者为完成、提交一项开发任务而创建的,是用来记录开发者创建或修改的文件集合(变化集合)的对象,例如下图所示的修改BUG。一个活动包含一个组件(Component)两个或多个元件(Element)的多个版本。
活动是UCM的基本对象。
上图表明活动Fixing bug(排错) 2144包含foo.c和bar.c。
通过活动,开发者可以一次完成对多个文件的操作,而不必一一处理,可以极大地提高工作效率。
流(Stream)
流记录了在项目的私有工作区和共享工作区中的所有活动历史。流同时也定义了开发者通过私有工作区可以存取相应元件(例如文件foo.c)的哪个版本。
下图表示了一个流:
装ClearCase LT Server
安装ClearCase LT Server的步骤参见后续章节的ClearCase安装部分。
安装完毕ClearCase LT Server以后,需要进行一些设置,主要是数据的准备、环境变量设置、权限设置等。
生成基础VOB
ClearCase 服务器安装完毕之后,会自动启动ClearCase
服务器设置向导,设置初始的VOB。
也可在以后单独运行该向导。
如果需要额外的VOB数据,需要通过ClearCase 管理控制台(Administration
Console)完成。
设置环境变量
由于Windows NT/2000中的BUG,ClearCase要正常完成授权管理,必须设置环境变量:
a.打开控制面板,选择"系统"进入"系统特性"设置
b.选择"高级"页面,点击"环境变量"按钮,进入环境变量设置。在"用户变量"一栏中点击"新建"按钮,输入变量名称:CLEARCASE_PRIMARY_GROUP
变量值设置为将要访问ClearCase的用户组,例如CLEARCASE_USERS,表示CLEARCASE_USERS组可以访问ClearCase。(在安装ClearCase
Client的Windows 2000/NT的机器里面也必须设置CLEARCASE_PRIMARY_GROUP,方法参照b;Windows98需要在autoexec.bat文件里面设置该环境变量)
权限管理
权限管理在ClearCase的使用管理中十分重要,必须正确设置权限,才能正常使用ClearCase的各种功能。
· ClearCase LT 服务器端的权限设置
ClearCase通过Windows提供的用户组(或者UNIX用户组)实现用户登录管理,因此必须设置相应的可以访问ClearCase功能的用户组。
以上一节提供的数据为例,ClearCase管理员需要在ClearCase服务器上生成一个用户组CLEARCASE_USERS,然后产生要使用ClearCase进行软件开发的用户账号,并且将这些账号指定到CLEARCASE_USERS组。
注意:指定的用户组名称必须和前面设置的环境变量CLEARCASE_PRIMARY_GROUP中的名字相同!
· ClearCase 客户的设置
ClearCase客户端必须采用在服务器中提供的账户,登录到服务器域,才能使用ClearCase。
· 其他事项
如果遇到问题,可以使用ClearCase提供的“Rational ClearCase
LT Doctor”检查问题所在,然后根据它提供的方法解决问题。
该工具在ClearCase LT 服务器和客户端都有。
UCM方式采用一种迭代开发过程,开发人员在同一个UCM项目中工作。
项目管理者负责创建项目,维护项目公共区域。
一个项目包括了公共区域和多个私有工作区域,私有工作区域允许开发人员在活动上各自独立地进行工作。
工作过程如下:
·
项目管理者创建项目并且为项目中的元件确定初始基线集合;
·
开发人员通过创建私有工作区域、获取项目基线内容,加入该项目;
·
开发人员创建活动并且一次在一个活动上工作,与活动相关的文件集合称为变化集;
·
当开发人员完成活动,并且在其私有工作区对其工作进行了测试后,通过执行交付将其工作与开发组共享。交付操作将开发者私有区域中的工作合并到项目共享区域。
·
项目管理者在项目共享区域集成开发人员交付的工作。
·
项目管理者定期在项目共享域创建新的基线,用来集成开发人员的工作。
·
项目管理者执行快速验证测试,以保证新的基线可以正常工作。软件质量工程师将执行更多的扩展测试。
·
项目管理者定期在基线的质量和稳定性提高后调整极限的晋升级别(如:创建、测试、发布)以反映适当的里程碑。当新的基线经过了足够的测试,项目管理者可以将其指定为推荐基线。
· 开发者执行rebase操作来修改其私有工作区,使其包含新的推荐基线所确定的新版本集。
·
开发者继续如下的开发循环:基于活动进行开发工作、发布完成的活动、根据新基线修改其私有工作区域。
上述的任务可以分为两个循环:项目管理和开发
管理项目
当通知开发人员加入到新项目开发中后,项目管理员的职责就是不断监视项目开发的进展情况,对不同开发者提交的源代码进行相应的管理、验证工作;在开发进展到一定程度后,为项目生成新的基线;指定新的推荐基线,直到项目开发完毕。(参见UCM基础部分)
· 生成新的基线
管理员需要根据开发人员的开发情况,经常针对当前开发生成新的基线,以便更好的保存项目的开发过程。
操作过程如下:
(1)启动" Rational ClearCase LT Project Explorer",选择当前的项目,选中项目的集成视图,点击鼠标右键,选择"Properties"功能,修改属性:进入Lock页面,将状态改为Locked。锁定Integration Stream,防止用户提交新的数据。
(2)选中项目的集成视图,点击鼠标右键,选择"make baseline…"功能,如下图所示:
项目开发
ClearCase LT Client工具简介
ClearCase LT Client安装成功后,启动菜单里面的程序组如下所示:
上述各个工具中,Rational ClearCase LT Explorer将是开发人员最常使用的工具,其他一些工具许多都已经集成在Rational ClearCase LT Explorer中了。
Rational ClearCase LT Explorer左边是ShortCut Pane(快捷区),通过它可以方便的进行各项操作,包括两个部分:Toolbox(根据箱)和Views(视图),Toolbox中包括各种工具,Views中则是开发人员所参与的各个项目的视图。
· 下图是Toolbox中各项的内容:
Getting Started中是使用帮助部分;
UCM部分是统一变化管理部分,开发人员将主要使用该部分来进行开发过程的控制,功能包括:加入项目开发、提交数据、Rebase、打开项目浏览器;
Base ClearCase部分是基础的CC功能,包括修改视图属性、创建新的视图、删除视图、修改快捷视图等。
· 下图是Views中的内容
在Views中列出了开发人员参与的各个项目的视图,一般每个项目包括两个视图:开发视图和集成视图。上图显示的是项目testa的开发视图jim_testa,该视图中尚无内容,其中可以看到一项view.dat,该文件表示了与视图相关的内容,开发过程中切勿删除此文件,否则CC将失去该视图,恢复操作很复杂。
下面开始详细介绍ClearCase的使用。
开发流程
进行开发工作
加入到一个项目后,就可以开始着手开发工作,在开发过程中,可以使用不同的开发工具,可以提交的东西包括软件源代码、设计文档以及根据管理员要求可以提交的其他内容。开发人员可以使用开发工具直接在开发视图中进行修改。
但是,在开发中一定需要记住一点:在开发视图中对文件进行修改之前,一定需要将准备修改的内容check
out,然后才能修改,修改完毕后,使用check in加入到视图中。
· 加入文件、目录
最初加入项目的开发人员可能面对的是一个空的项目,需要不断加入新文件或者是目录,这可以在Rational
ClearCase LT Explorer中或者Windows资源管理器中完成。
下面是两种可能方式的图示:
(全文完)