UML软件工程组织

ClearCase远程客户端实现功能详述(二)
作者:李小朝,慕容雪 IBM

引言

绑定活动与非绑定活动

之所以先介绍这个概念,是因为在后边的介绍中,很多地方会用到相关的概念。在这里先大概做个介绍。和UCM CC集成的CQ数据库中,对于已存在的从属于某个用户的活动记录,称作对于该用户的非绑定的活动。当用户执行了加入源控制或检出的操作时,系统会提示用户从CQ数据库中选定一个活动记录来和该次操作关联,这样,被选定的活动记录就成为了绑定的活动,它会表现出一个CC活动的一切特征。

在CC与CQ集成的环境下,CCRC客户端的应用

1. 在客户端浏览CQ数据库中的Defect纪录

在CCRC服务器端将项目和CQ绑定后,从CCRC客户端点击 加入该项目。具体操作过程参见《ClearCase远程客户端介绍》中"创建UCM视图"一节。在视图创建的最后一步,完成与CQ的集成设置。参见《ClearCase远程客户端实现功能详述(一)》中"在CCRC服务器上实现CQ与UCM ClearCase的集成设置"一节。

至此,用户可以开始方便而美妙的UCM CC与CQ集成环境的应用了。

1.1 从CCRC客户端登陆CQ数据库

用户第一次连接CCRC服务器,在绑定了CQ的项目的流视图下,点击"我的活动",系统会出现一个CQ的登陆窗口。如图1所示:

图1

用户需要输入CQ数据库的相应用户名和密码。在不断开和CCRC服务器的连接的前提下,再次点击"我的活动",将不会出现该对话框,登陆信息会存储在这个连接会话的缓存里。这里我们用admin用户登录。

引申一下,如果需要用另一个用户来登录CQ数据库,再次调出该窗口的方法就是手动断开与CCRC的连接,重新连接,然后点击"我的活动"。

1.2 察看活动记录详细信息

通过CQ用户验证后,在ClearCase详细信息窗口中,会显示出一个Defect的列表。它们是已经存在于CQ数据库中的属于该用户admin并且状态为Assign的所有Defect 以及属于该用户的,和当前流绑定的状态为open的所有活动。

任意选择一个defect,右键点击并选择"属性",一个属性窗口打开。如图2所示:

注意该窗口中目前只有"常规"和"ClearQuest"两个tab页。这个defect可以称为未绑定的活动。它是CQ数据库中一条普通的Defect记录。仅仅是因为该数据库和CC的某个项目绑定,所以在该项目下的一个UCM视图中被显示出来。

图2

用户还可以以Web形式在客户端就浏览这条记录的详细信息。选择"ClearQuest"页并点击按钮"显示ClearQuest记录"。如图3所示。注意,如果用户在安装过程中,没有正确设置"cqweb_url"参数,该按钮将不会显示。参见《ClearCase远程客户端实现功能详述(一)》中"配置Web参数"一节。

图3

点击"显示ClearQuest记录"后,一个标题为"Rational ClearQuest"的窗口出现了。该窗口调用了客户端的默认浏览器,以web的形式来显示CQ数据库中的记录。如图4所示。如果该窗口未能正确显示记录内容,有以下几种检验方法是用户应该注意的:

1. 服务器的防火墙设置是否为http协议留了出口;

2. 服务器上的CQ Web 服务是否起来。对于CQ服务器在windows的情况,打开控制面板-〉服务,找到"IBM HTTP Server 6.0"手工启动;如果服务器在linux或unix上,到<CQ Home>/common/rwp/bin/目录下,运行rwp_restart.

图4

再次打开,用户就看到了熟悉的在CQ Web里出现的内容了。

2. 检入,检出,交付等行为在CCRC SQUIDWARD环境下的操作与表现

首先要说明的是,加入源控制,检出,检入和"处理活动"行为都可以把一个未绑定的 defect转变成一个绑定了的活动。

2.1 加入源控制操作。

选择一个本地私有文件,点击工具栏按钮 ,出现"将资源添加到源控制"窗口,如图5所示:因为是在UCM下进行加入资源控制操作,所以必须和一个活动关联。特别提出的一点,该界面上的新建按钮是无效的。也就是说,通过CCRC客户端向CQ数据库中添加一条新的记录是不行的。只能通过"浏览"来显示已存在的活动记录,从中选取一条进行关联。

图5

点击"浏览"按钮,出现的"选择活动"窗口如图6所示:

图6

选择活动"SCDB1_Defect4",确定之后,会有一个"将资源添加到源控制"的进度条显示具体进度。成功后,再回到"我的活动",选择"SCDB1_Defect4"的属性,我们看到了和图2相比,此时,该活动的属性多了3个Tab页:分别是"变更集","定制"和"锁定"。

图7

这时,一个CQ数据库中的记录被成功绑定为一个CC的活动。它具有一个CC活动的所有特征。通过察看该记录的"统一变更管理"项,可以了解更详细的绑定信息:比如该记录所绑定的CC项目,所从属的流和视图。如图8所示。点击"View Change Set",还可以浏览所有和该活动相关的变更集。

图8

2.2 处理活动和完成活动

处理活动和加入源控制的结果类似,都是将一个CQ数据库中的独立的Defect与一个具体的CC活动绑定起来。唯一的不同之处在于,这样处理的绑定活动暂时没有属于它的变更集。在之后的检出检入过程中,关联了该活动之后,它才拥有自己的变更集。

选择要关联的Defect,右键单击,选择"处理活动"。如下图所示:

需要特别说明的是,作完处理活动后,该活动只对当前流可见。也就是说,在并行的其他开发流或集成流上,是看不到这个open状态的活动的。也不可以把一个流上open状态的defect转到另一条流上。

完成活动选项可以将检出的元素执行检入,并且自身状态也变为resolved或completed。当然,是针对和该活动关联的元素。比如,在checkout一个元素时,关联defect1, 然后选择defect1并点击"完成活动",该元素的检入过程就被激发了。完成活动之后,活动状态变成"resolved". 另外要提醒的一点,如果没有设置项目的policy, 完成活动是不能进行的。Policy的设置参考《ClearCase远程客户端实现功能详述(一)》"CCRC Server的两种配置模式及其模式特点"一节。

2.3 交付与同步

UCM ClearCase的一个特点是多条开发流并行开发,交付与同步是这种开发模式的保证。

当用户在一条开发流上进行了一些改动,并想把这些变更交付到集成流上的时候,在CCRC客户端完成这个操作是非常简单的。可以参考本文后半部分关于"交付/同步的操作"。

由于本例关联了CQ,这里讨论一下和没有关联CQ的交付/同步操作的区别。

要强调的是关联活动的状态会产生变化。根据我们在环境设置里的要求,我们可以要求完成交付后活动状态改为"完成"。即点选项目policy里的项:"Transition to Complete after Delivery"。所以,当交付动作完成时,系统会依次调出与这次交付相关的所有活动详细信息,以Web的形式展示给用户,红色字体提示用户在"解决方案"一栏中输入相关信息以保证活动的状态能成功的转变为"完成"。如图9所示:这样,在CQ集成环境下的一次交付算是完成了。

图9

3. ClearCase UCM活动视图

到这里,用户已经很熟悉点击"我的活动"带来的种种方便了。我们还要介绍一个类似功能的视图:ClearCase UCM活动视图。

首先,通过右键"我的活动"-〉UCM-〉显示UCM活动打开ClearCase UCM活动视图。

打开树形结构,可以看到跟每个活动关联的元素和版本信息。还可以调整每个活动下关联的元素。右键点击元素,选择"移至活动"。可以将本变更记录移至另外一个与该视图关联的活动记录下。极大的方便了开发人员的操作。

这个视图对于察看和当前开发流关联的所有活动以及察看某活动下的变更集是很有用处而且方便的。

4. 集成环境下的操作总结

通过这两篇的介绍,用户可以在集成的环境下享受Rational的两大产品集成后带来的方便操作和高效的管理。本文着重于介绍集成环境下客户端的操作,所以示例的环境是很简单和基本的。在实际应用中,用户可能会有各种各样的环境配置,比如vob 服务器,CQ Web服务器,CCRC服务器分布在不同机器上的情况。在这样的要求下搭建UCM CC/CQ集成环境,需要一些特殊的处理。笔者将在后续篇章中详细介绍一下复杂的集成环境的搭建。

ClearCase Remote Client之"交付/同步"操作

1 "交付/同步"概述

交付/同步,是CCRC中两个非常重要的操作步骤。它使CCRC实现了真正意义上的异地并行开发。

使用者A在自己的开发视图内通过交付操作,将修改后的文件提交到集成流;使用者B执行同步操作,将该文件从集成流内同步到自己的开发视图。简而言之,就是不同的使用者可以同时对同一文件进行修改,最后通过集成流进行同步。

2 "交付/同步"前提

1.创建一个多流项目(Multlple-Stream Project)

2.连接UCM项目:创建开发流(两个)、集成流、开发视图(两个)、集成视图。选择开发视图,在cvob根目录内创建一个新文件。

3.选择"添加到源控制",将文件加入源控制。在添加到源控制时,需要创建一个与文件版本相关联的"活动"。

4.对文件执行"检出",同时创建相应的"活动"。修改文件内容、保存后,执行"检入",并且创建相应的"活动"。

5."活动"是使用者为完成、提交一项开发任务而创建的,是用来记录使用者创建或修改的文件集合的对象。它在"交付/同步"操作中起到了关键作用。

3 "合并"概念介绍

图1 合并界面

CCRC中的合并,通常是在"交付/同步"过程中进行的。如果存在需要合并的文件,则会在"交付/同步"过程中自动弹出图1所示的合并界面。也可以通过勾选"交付/同步"配置界面中的"以图形方式合并元素"选项,来弹出图1所示界面。

进入合并界面,点击按键后,"1"、"2"、"3"三个按键变为可用状态。其中"1"表示文件的前一个版本内容,"2"表示当前文件内容,"3"表示集成流内该文件内容。使用者可以根据自己的需要对"1"、"2"、"3"进行单选或多选,只需点击相应按键既可实现。通常选择"2"和"3"进行合并。选择完成后,点击"保存",同时退出合并界面,合并完成。

4、"交付/同步"操作

4.1.交付

本节主要介绍CCRC中,交付操作的详细步骤

4.1.1 交付配置界面

选中第一个开发视图,此时功能条内的"交付"变为可用状态;也可以右键开发视图,在菜单中选择UCM'交付。点击图标,交付配置界面出现。

图2 交付配置界面

其中包括集成流、集成视图、活动和两个复选项。

A) 一个集成流可以对应多个集成视图。因此,可以在交付配置界面点击"新建"创建一个集成视图,其步骤和新建视图一样。也可以通过"更改"在已有的集成视图范围内重新选择。

B)点击"详细信息",可以看到已经创建的活动标识,其中检出时创建的活动不被记录到版本树内,提交时也不会有检出的活动。使用者可以根据需要选择其中的任何一个活动,也可以选择全部。

C)使用者可以根据需要修改复选项的状态。默认选项如图1所示。按照默认选项,在完成提交前,系统会自动搜索已经被检出和截取的文件。并对这些文件不执行交付操作,如图3所示。

D)点击"确定",开始提交操作。

图3

4. 1.2 提交进度条

正常提交开始,显示提交的执行状态。

图4 提交进度条

点击"取消"可以终止提交,类似于暂停。点击"在后台运行"后,提交将在后台运行,此时如果终止提交,则需要在功能条内点击"停止当前作业"。在此过程中,系统将对需要合并的文件执行"合并"操作。如果没有,则不执行。如果遇到合并冲突,系统则会给出相应提示。

正确执行完毕后,在界面左部,自动弹出交付详细信息页。此时,可以在集成视图中找到被检出的第一个开发视图中的文件。1)点击"完成交付操作"按键,完成操作。文件被检入,改动同时被保存到集成流内。2)点击"重新开始操作",重新对终止或完成的文件执行合并和检出。3)点击"撤消交付操作" ,退出交付操作,同时执行取消检出操作,文件变为检入状态。

点击"完成交付操作",正确完成操作后,使用者可以在集成视图中看到相应文件。检查文件内容是否与第一个开发视图中的文件内容一致。

4.2.创建/推荐基线

基线是UCM 在某一时刻一组元素的集合,它包含了在该时刻所选取所有元素版本的集合,用来记录在软件项目开发过程中完成的工作,并可根据需要,使用基线来重现某个特定时刻的配置。推荐基线则是通过一系列针对软件的测试并相对稳定后,使用者提升该基线的级别,用来标识具有指标意义的里程碑。

正确完成交付操作后,在服务器端,会自动生成一个交付的活动。这个活动可以在集成流中看到。

1)使用者要做的是把活动组织到一个新的基线。

具体步骤:打开项目,右键集成流,在菜单中,选择"生成基线"Make Baseline选项。在"概要"General页内为基线命名,在"活动"Activities页内,选择相关的活动。点击OK完成操作。

2)通常,一个基线是贯穿整个项目测试和修改错误的过程的。直到项目达到一个目标里程碑后,就可以把这个基线变为一个被推荐的基线。

具体步骤:右键集成流,选择"推荐基线"Recommend Baselines。点击"添加"Add弹出"添加基线"Add Baseline配置界面,选择刚才创建的基线,然后点击OK,返回"推荐基线"Recommend Baselines界面。点击OK完成操作。

4.3.同步

本节主要介绍CCRC中,同步操作的详细步骤

4.3.1 同步配置界面

选中第二个开发视图,此时功能条内的"同步"变为可用状态;也可以右键开发视图,选择UCM'同步。点击图标,同步配置界面出现。

图5 同步配置界面

其中包括同步的基本信息(开发流、集成流、开发视图的名称)、两个复选项、基线。

1)点击"高级"出现如图5所示的关于基线的详细内容。"使用父流的推荐基线"默认为选中,此时基线页为不可用状态,默认使用被推荐的基线。

2)取消"使用父流的推荐基线"选项,多选框和"添加"变为可用状态。选择所需的基线后,"更改"、"除去"、"属性"变为可用状态。点击添加,进入图6所示界面,如果存在多个vob,可以通过下拉框来选择使用者需要的vob。多选框内为该vob所包含的基线,其中有 标志的基线为被推荐基线。使用者也可以通过没有被推荐基线来执行同步操作,但前提是这个基线没有在以前的同步操作中使用过。

图6 添加基线

3)点击更改,进入更改基线配置界面。和添加配置界面唯一的不同是不可以修改"组件"。

4)除去则是用来删除基线。

按图5所示的默认选项,点击确定,开始执行同步操作。

如果该视图中存在检出和截取的文件,则系统在开始同步前,会给出提示。要求把检出和截取的文件执行检入后再进行同步,同时停止当前的同步操作。如图7所示。

图7

4.3.2 同步进度条

正常同步开始,显示同步的执行状态

图8 同步进度条

点击"取消"可以终止同步操作,类似于暂停。点击"在后台运行"后,同步将在后台执行,此时如果终止同步,则需要在功能条内点击"停止当前作业"。在此过程中,系统将对需要合并的文件执行"合并"操作。如果没有,则不执行。如果遇到合并冲突,系统则会给出相应提示。

正确执行完毕后,在界面左部,自动出现同步详细信息页和ClearCase视图配置页。如果存在需要合并的文件,则会在同步详细信息页内列出这些文件,同时检出。如果没有,则同步详细信息页为空。需要同步的文件会在ClearCase视图配置页内列出。此时,需要同步的文件被装入到第二个开发试图。点击"完成同步操作"按键,完成同步操作。点击"重新开始操作" ,重新开始终止或完成的同步。点击"撤消同步操作",退出同步操作。点击"完成同步操作"正确完成同步操作后,使用者可以在第二个开发视图中,看到相应文件。检查文件内容是否与集成视图中的文件内容一致。

5 交付/同步总结

CCRC实现了异地同步开发。其中交付/同步是实现这个目标的关键操作步骤。使用者在各自私有的开发流上进行工作,相互之间保持一定的独立性,当个自的变更任务完成之后,将变更结果从开发流交付到共享的集成流。当变更之后的集成流逐渐稳定之后,集成人员在集成流上创建基线,并根据实际情况将最新的基线设置为推荐基线。之后,各个使用者通过同步操作,将对应的开发流的基线同集成流的推荐基线保持一致,从而使各个使用者在同一基础上进行变更。


版权所有:UML软件工程组织