作者:Jim 著
本文选自:UMLChina
2002年10月30日
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 服务器和客户端都有。
· 配置License Server(许可服务器)
运行ClearCase安装程序,根据提示逐步进行,到达如下画面:
点击按钮"Configure Licenses…"(配置许可):
点击按钮"下一步(N) >":
在弹出的新的对话框中继续点击按钮"下一步(N) >":
在Server Name(服务器名称)中输入认证服务器的名称或IP地址,如上图为192.168.0.12,然后点击按钮"完成"。
如果设置正确,将会弹出如下窗口:
关闭Rational License Key Administrator(Rational许可密钥管理器),这时,安装界面变成了如下形式:
可以看出,Rational ClearCase LT Client和Rational ClearCase LT Server前面出现了绿色的"√"。
安装ClearCase LT软件
要安装ClearCase LT Server,则使用鼠标选中"Rational ClearCase LT Server",然后点击按钮"下一步",开始安装Server。
要安装ClearCase LT Client,则使用鼠标选中"Rational ClearCase LT Client",然后点击按钮"下一步",开始安装Client软件。
根据提示,继续安装,就可以完成Server或者是Client的安装。
ClientCase 客户端配置
安装完毕客户端软件后,需要对客户端系统进行一些设置。
首先配置用户组,具体方法参照3.3设置环境变量。对于Windows 98中设置环境变量的方法,请自行参考相应的文档。
其次设置网络属性,设置客户机的网络ID以及登陆的域。注意:需要在域中填写ClearCase LT Server所在计算机的域名称。
在Windows 2000中,通过控制面板打开"系统"功能,进入"网络标识"页面,点击"属性"按钮,设置计算机名称和所属的域。
用户每次登录计算机时,必须选择登录到域。输入在ClearCase LT Server计算机上的用户名称和密码,这样才能使用ClearCase提供的服务。
使用CC进行项目管理,可以采用两种方式:Base ClearCase方式和UCM(Unified Change Management)方式。
Base ClearCase方式是基于文件的管理方式,UCM方式则主要采用Activity方式进行项目管理。与Base ClearCase方式相比,UCM方式具有以下一些优点:
· UCM比Base ClearCase更加有效
· UCM使用Stream方式管理项目,比Base ClearCase采用Branch方式管理项目的方式减少了配置工作
· UCM方式对基线的管理更加自动化并提供了附加的执行操作
· UCM方式使用活动管理项目,更加简单,并提供了与ClearQuest工具集成的功能
· UCM方式更加有利于并行开发模式
下面对项目管理的讨论主要基于UCM方式。
UCM基础
项目管理周期
UCM方式采用一种迭代开发过程,开发人员在同一个UCM项目中工作。
项目管理者负责创建项目,维护项目公共区域。
一个项目包括了公共区域和多个私有工作区域,私有工作区域允许开发人员在活动上各自独立地进行工作。
工作过程如下:
·
项目管理者创建项目并且为项目中的元件确定初始基线集合;
·
开发人员通过创建私有工作区域、获取项目基线内容,加入该项目;
·
开发人员创建活动并且一次在一个活动上工作,与活动相关的文件集合称为变化集;
·
当开发人员完成活动,并且在其私有工作区对其工作进行了测试后,通过执行交付将其工作与开发组共享。交付操作将开发者私有区域中的工作合并到项目共享区域。
·
项目管理者在项目共享区域集成开发人员交付的工作。
·
项目管理者定期在项目共享域创建新的基线,用来集成开发人员的工作。
·
项目管理者执行快速验证测试,以保证新的基线可以正常工作。软件质量工程师将执行更多的扩展测试。
·
项目管理者定期在基线的质量和稳定性提高后调整极限的晋升级别(如:创建、测试、发布)以反映适当的里程碑。当新的基线经过了足够的测试,项目管理者可以将其指定为推荐基线。
· 开发者执行rebase操作来修改其私有工作区,使其包含新的推荐基线所确定的新版本集。
·
开发者继续如下的开发循环:基于活动进行开发工作、发布完成的活动、根据新基线修改其私有工作区域。
上述的任务可以分为两个循环:项目管理和开发
创建项目
创建并配置一个项目,需要按照以下步骤进行:
· 创建存放项目信息的仓库
· 创建包含开发者使用的文件集组件
· 创建基线,以便开发人员可以确定开始其工作的文件版本
· 选择希望采取的开发策略
注意:创建新的项目应当以安装CC时使用的用户登录,其他用户才能正常使用该项目。
创建步骤:
a.使用安装了CC LT Server的计算机,运行其中的"Rational ClearCase LT Administration Console",加入保存新的项目数据所需要的VOB。
在此创建的VOB为TEST(具体是否创建VOB根据实际需求而定)。
b.打开运行Rational ClearCase程序组中的"Rational ClearCase LT Project Explorer",进入项目浏览器:
按照上图,创建新的项目,根据提示操作,选择缺省的选项,一直到第三步:New Project - Step 3
c.添加项目使用的基线
点击"Add"按钮:
从组件列表中选择指定的组件(component),在此,选择刚刚创建的组件TEST,然后基线列表中出现了与组件相关的基线,选择一个基线,新的组件只有一个基线:xxxx_INITIAL,此处选择的是TEST_INITIAL基线。点击OK:
这样,就为将要创建的项目选择了初始基线,点击下一步,进入步骤四。
d.设置可修改组件、调整项目策略
选择项目中需要修改的组件,在此选择TEST,实际应用中需要根据实际情况做出选择。
点击按钮"Policies",调整项目的策略:
具体的项目策略应当根据实际情况进行调整,一般是将"For All deliveries"策略设置为Enabled.
e.继续选择缺省的配置,完成项目的创建。这样就生成了一个以缺省VOB为基础的新项目,新项目生成一个缺省的Integration_Stream:testa_Integration(这里假定刚刚生成的新项目名称为testa)
通知开发组成员加入新的项目
创建了新项目后,需要通知、指导开发人员加入到新创建的项目中,具体的方法参见开发部分。
管理项目
当通知开发人员加入到新项目开发中后,项目管理员的职责就是不断监视项目开发的进展情况,对不同开发者提交的源代码进行相应的管理、验证工作;在开发进展到一定程度后,为项目生成新的基线;指定新的推荐基线,直到项目开发完毕。(参见UCM基础部分)
· 生成新的基线
管理员需要根据开发人员的开发情况,经常针对当前开发生成新的基线,以便更好的保存项目的开发过程。
操作过程如下:
(1)启动" Rational ClearCase LT Project Explorer",选择当前的项目,选中项目的集成视图,点击鼠标右键,选择"Properties"功能,修改属性:进入Lock页面,将状态改为Locked。锁定Integration Stream,防止用户提交新的数据。
(2)选中项目的集成视图,点击鼠标右键,选择"make baseline…"功能,如下图所示:
在弹出的"make baseline"对话框中,输入基线的名称、描述、类型,并且在"View Context"中选择对应的集成视图。上图中选择的是递增类型视图、以jim_testa_integration视图为基础。
(3)按照(1)中的方法,将Integration Stream的状态改为Unlocked。
· 管理基线
在项目开发过程中会产生许多的基线,管理员需要根据项目开发的进展来管理基线,例如改变基线的属性、提升基线等。
下面举例说明如何提升基线,这主要涉及到修改基线的属性。(可以在多个地方修改基线的属性,下面只是其中的一种)
a.进入Integration Stream属性功能
b.选择基线
按照上图中的1、2、3、4的步骤进入基线属性功能。
c.调整基线属性
在晋升(promotion)下拉框中,列出了缺省的晋升级别,根据当前项目的进展情况选择一个,然后点击"确定"按钮。
REJECTED表示该基线所代表的内容被拒绝接受;INITIAL表示该基线为初始基线;BUILT表示该基线的内容已经创建成应用程序;TESTED表示该基线已经被测试过;RELEASED表示该基线已经发布。
· 指定推荐基线
在一个开发团队并行开发项目的过程中,很可能出现各个开发人员修改不同步的情况,有时会导致对同一个文件出现不同的版本,这就需要管理员对此进行跟踪管理,采用的主要手段是推荐基线。
采用推荐基线就是要求各个开发人员将他的开发视图中的内容与基线所代表的内容保持一致,以避免冲突。
对于各个开发人员提交的开发数据,管理人员进行审查、测试,创建基线,当提交的代码已经达到一定的稳定程度或者是一定规模后,管理人员可能认为需要让所有的开发人员与当前的代码保持一致,他就可以将认为可行的基线设置为推荐基线,然后要求各个开发人员rebase他们的开发视图与该推荐基线中的内容保持一致,然后再在此基础上继续开发。
在一个项目的开发过程中,管理员不断的生成新的基线,根据实际情况变动推荐基线,以保证各开发人员工作的一致性。
操作方法如下:(多种方式中的一种)
管理员可以根据实际情况添加、删除或者改变当前的基线。
完成设置新的推荐基线后,需要通知各个开发人员rebase他们的开发视图,以便与推荐基线的内容保持一致。
项目开发
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的使用。
开发流程
开发人员的主要的工作流程是加入项目,然后基于活动实施开发,提交活动,根据管理员的要求rebase工作区,然后继续开发,直到开发完成。
加入一个项目
要加入一个项目,主要点击Rational ClearCase LT Explorer / Toolbox /UCM中的"Join Project按钮"(参见ClearCase LT Client工具简介部分),然后根据提示进行操作,就可以完成加入项目开发的过程。
加入项目后,点击菜单View/Refresh View Shortcuts,在左边面板的Views中就会出现项目的视图:
同时,在计算机的硬盘(缺省的是C盘)中会产生两个目录:user_project和user_project_integration。上面的例子中生成的目录为:jim_testa、jim_testa_integration。
以后,开发工作将会在user_project中展开,测试工作将会在user_project_integration中进行。
注:要想加入到项目开发,计算机的登录用户应当满足"ClearCase LT设置"部分的要求。
进行开发工作
加入到一个项目后,就可以开始着手开发工作,在开发过程中,可以使用不同的开发工具,可以提交的东西包括软件源代码、设计文档以及根据管理员要求可以提交的其他内容。开发人员可以使用开发工具直接在开发视图中进行修改。
但是,在开发中一定需要记住一点:在开发视图中对文件进行修改之前,一定需要将准备修改的内容check
out,然后才能修改,修改完毕后,使用check in加入到视图中。
· 加入文件、目录
最初加入项目的开发人员可能面对的是一个空的项目,需要不断加入新文件或者是目录,这可以在Rational
ClearCase LT Explorer中或者Windows资源管理器中完成。
下面是两种可能方式的图示:
上图左边是使用ClearCase LT Explorer的方式,右边时使用Windows资源管理器方式,可以看出在开发视图对应的文件夹的快捷菜单出现了ClearCase的快捷操作方式。
通过Windows资源管理器,在开发视图目录中生成新的目录,拷贝加入文件。例如:在jim_testa\test目录中加入文件夹source、doc,source文件夹中加入新的文件home.html,这是Rational ClearCase LT Explorer中的情况如下:
这时新产生的目录和文件并没有纳入CC的管理之下,必须手工将其加入到CC管理,即Add to Source Control。
首先选择需要加入到CC控制的目录或者是文件,然后通过Tools/Add to Source Control或者快捷按钮将其加入到版本控制中。
添加到版本控制中要求选择"活动",(UCM方式基于活动),输入活动名称:
上图所示,此处,活动被命名为add folder。这样新加入的内容就加入到CC控制之下。
注意:任何新加入的文件/目录都需要通过Add to Source Control加入到CC中。
· Check Out
加入新的代码在开发过程中需要不断的修改,首先需要完成Check Out工作。操作比较简单,选中需要Check Out进行修改的目录或文件,然后通过Tools菜单或快捷菜单或快捷按钮,实现Check Out功能。任何需要修改的文件,都要执行Check Out功能,才能进行修改。
执行了Check Out之后,可以将ClearCase的各个工具关闭。
Check Out以后的情况如下所示:
· 修改
Check Out以后,开发人员就可以对相应的文件进行修改了,可以在开发视图目录中直接修改,也可以在其他地方修改之后,覆盖该视图中原来的文件。
· Check In
修改后,要将新改动的内容加入到CC中,这就需要Check In。如果一次修改了许多文件,为了防止漏掉一些修改的内容,可以使用快捷菜单中的Find Checkouts功能:
这样可以找出所有的被CheckOut的文件,选中这些文件,然后选择Check In,要取消这次修改,也可以选择Undo Checkout:
当然也可以在View中选择某个或某些文件,从快捷菜单中选择Check In完成Check In操作。
提交工作
当开发工作进行一定时间之后,要提交所作的改动,以便管理员及其他开发人员看到这些改动。
这样,改动的部分就会加入到集成视图中,CC服务器也会得到改动的部分,管理员可以根据新的数据进行测试、生成新的基线、晋升基线、生成新的推荐基线等工作。
具体的操作方法有两种:
上图左边和右边分别表示了提交的方法。
当系统完成提交工作后,提交工作并没有真正的完成,CC会弹出下面的对话框,请操作者确认:
(全文完)
文章来源于领测软件测试网 https://www.ltesting.net/