Project创建完成之后,修改Project的属性,指定其CQ Enabled。 在Project Explorer中,选中刚刚创建的Project,右键,选择属性(properties),在打开的属性页中选择"ClearQuest"页。此时"Project
is CQ enabled"复选框应该是出于未被选中状态。选中复选框,从下来列表中选择已经在ClearQuest建好的Connection
和Sample DB。"确定",完成操作。
图4 在工程属性中指定工程为CQ Enabled
3. Join project:创建集成流,开发流,集成试图,开发视图。在开发视图环境下创建新的文件,或者对文件进行检出检入操作打开ClearCase
Explorer,选择开发视图,在cvob的根目录里创建一个新的文件,选择"Add to source control",将这个文件加入源控制。在"Add
to source control"的界面上,需要选择一个与这个文件的版本相关联的活动(activity)。
图5 为元素新版本指定活动(activity)
在设定相关联的activity的时候,有三种方式:选择"New",新创建一个ClearQuest的记录类型(defect
或者BaseCMActivity两种类型可供选择);或者在下拉列表中选择一个已有的defect与之关联;或者使用"browse"查询一个满足一定条件的记录。
下面分别详细介绍这几种方式:
新建方式
选择"New",默认情况下,可以选择新建两种类型的activity :defect和BaseCMActivity。单击"New",可以看到这两种记录类型,如图所示:
图6 可选的记录类型
是否可以创建这两种类型的记录,或者只能创建哪一种是可以自由设定的。方法是:在Project Explorer 里,右键选中pvob,在右键菜单中选中"policies"策略。如果"Do
not allow submitting of records from ClearCase client"选项是被选中状态,就意味着不允许在ClearCase端创建ClearQuest的记录,在将文件加入源控制、对元素检入、检出操作时,关联activity的界面中也不会出现"New"这个操作按钮;相反的,如果"Do
not allow submitting of records from ClearCase client"选项是不被选中的状态,就意味着用户可以在ClearCase
端创建ClearQuest的记录,但是,在"Allowed record types"中限定了允许创建的记录类型,如果选中了"defect",说明可以新创建defect类型的记录,在ClearCase里点击"New"时,在弹出的选择页里相应的也只能看到"defect"这一类型。对于BaseCMActivity也是同样的。默认的情况下,这两种类型都是被选中的。
图7 设定可以在ClearCase端提交的类型
这里假设单击了"New" 之后,选择的是defect,则会调用ClearQuest的新建defect的窗口:
输入必要的信息后保存,新建的defect的headline就会出现在activity对应的下拉列表选择框内,可以默认的选择这个新建的defect,完成相应的ClearCase的操作。如果使用QE用户登陆到ClearQuest的客户端,运行关于defect的
查询,则会查询到刚刚创建的defect,并且此时这个defect是处于opened状态的。
图9 Defect处于Opened 状态
选择已有的defect
如果事先在ClearQuest客户端中已经创建了一些记录,那在activity的下拉列表中就会自动列出来这些记录。不过,哪些纪录会列在列表里也是有一定的限制条件的:
1) 这些defect的所有人(owner)必须和ClearCase中作集成时登陆ClearQuest所使用的用户帐户是一致的,也就是说只有那些分配给这个用户处理的defect才能在备选的活动列表里出现。
2) 只有处于Assigned、 Opened状态的defect才会被列到activity的备用下拉列表中,而处于submitted状态和resolved以及closed状态的defect则不会出现在备选下拉列表中。
"Browse"方式
选择"Browse"按钮,弹出"Activity Entity Browser"窗口。可以在这个窗口中选择"New
Query"建立一个新的Query,设定查询条件,选择满足需要的记录。设定好查询结果要显示的字段以及查询条件后,可以将这个查询保存(保存后的查询也可以直接在ClearQuest客户端中被使用)。新创建的查询会列在"Activity
Entity Browser"的窗口中,选中这个查询,或者选择其他已经在ClearQuest中创建的查询,点击"运行"(run)按钮,在查询结果中选择正确的记录,作为与ClearCase中的文件版本相关联的活动(activity)。
图 10 查询相关记录
4. Deliver操作
Deliver操作开始后,ClearCase中会自动生成一个对应的Activity,这个Activity的名称中包含"deliver"的字样,以及执行Deliver操作的时间。对应这个Activity,会自动建立一个ClearQuest的"UCMUtilityActivity"类型的记录,这个记录的状态随着Deliver状态的改变而改变。
Deliver操作进行到最后,不确认结束Deliver的操作
在Project Explorer中,右键选中开发流,选择"Deliver from Stream>
to Default",开启Deliver的操作,采用默认的设置,在最后的确认页中选择"Close"。
图11 是否完成Deliver操作
用QE用户登陆ClearQuest的客户端(建Project指定CQ Enable时,假设使用QE帐户登陆到ClearQuest数据库)。新建一个查询,查询对象是UCMUtilityActivity类型的记录,运行查询,在查询结果中找出headline是ClearCase中deliver
activity名称的记录,查看目前这个记录的状态应该是"Active"。
取消Deliver操作
如果之前没有确认结束(在Deliver的最后提示页中选择Close)Deliver操作,重新开启"Deliver
from Stream > to Default"之后,会出现让用户选择"继续"还是"取消"的询问界面,这里选择"Undo
the Delivery"。 Deliver的操作被取消后, ClearQuest中对应的UCMUtilityActivity类型的记录也不复存在了。
Deliver操作进行到最后,确认结束Deliver的操作
重新开启Deliver操作,并且在最后的确认页中选中"Complete",在ClearQuest客户端,登陆到数据库,运行上面创建的查询,看到以ClearCase的activity名作为headline的记录出现在查询结果列表中,并且此时的状态改为:"Complete"。
图12 UCMUtilityActivity 的记录状态改为Complete
5. Rebase操作
同样地,对于Rebase操作,也会自动生成一个ClearCase的Activity,名称中包含"rebase"字样以及执行Rebase的时间。在ClearQuest中也会自动创建一个"UCMUtilityActivity"类型的记录。随着Rebase操作进行到不同的程度,记录的状态也随之改变,三种不同的状态和Deliver的情况相同,这里不作过多赘述。
6. 在ClearQuest界面执行ClearCase的一些操作
实现了UCM ClearCase与ClearQuest的集成之后,不仅可以在ClearCase端执行例如新建一个defect
等ClearQuest的操作,同时,也可以在ClearQuest端执行例如检入、查看历史信息等ClearCase的操作。
从以上的介绍中可以了解到,在ClearCase Explorer中,当对一个文件进行加入源控制、检入、检出操作时,会使活动(activity)指向ClearQuest的某一个记录。其实,这种关联建立之后,也把这个文件加入到了ClearQuest所对应的记录的变化集(change
set)当中。
在ClearQuest中通过查询得到和ClearCase中某个文件版本相关联的记录(defect或者其它类型的记录),打开他的变化集(change
set),会看到与之相关联的文件及其版本。右键点击这个文件,在弹出的菜单中可以进行ClearCase的一些相关操作。如图所示:
图13 可以在ClearQuest中进行的ClearCase的操作
7. 如何取消Project 的CQ Enabled的特性。
如果一个Project 此时是CQ Enabled的,在Project Explorer中,选中这个工程(Project),右键,选择属性(properties),在打开的属性页中选择"ClearQuest"页。此时"Project
is CQ enabled"复选框应该是被选中的状态。想要取消这个工程(Project)的CQ Enabled
特性,只要去掉复选框的选中状态即可。"确定"之后,系统会提示取消的操作会涉及到多少个ClearQuest的记录。
三、 总结
本文首先简要介绍了IBM 的软件版本控制和配置管理工具ClearCase以及缺陷跟踪管理工具ClearQuest,并论述了ClearCase
与 ClearQuest集成的真正含义。ClearCase 与 ClearQuest的集成主要分成两种方式:Base ClearCase
与 ClearQuest的集成以及UCM ClearCase 与 ClearQuest的集成。本文以UCM ClearCase
与 ClearQuest的集成为主,详细阐述了集成应用的一般操作过程。希望通过阅读本文,能为从事相关工作的开发人员提供实际的使用指导。
参考资料
Software Configuration Management -A Clear Case for IBM Rational-
UCM ClearCase and ClearQuest.
ClearCase product manual: UCM development guide
ClearCase product manual: UCM project introduction
Multiple DBset application for UCM ClearCase ClearQuest integration
使用IBM Rational ClearCase和IBM Rational ClearQuest进行良好的电子记录管理
关于作者
商慧波:IBM中国软件开发实验室,Rational Team,软件工程师。shanghb@cn.ibm.com。