本文主要是介绍Clear Case 与Clear Quest的集成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
摘自@商慧波 的文章 :http://www.ibm.com/developerworks/cn/rational/r-shb/
引言
ClearCase 是业界非常优秀的软件版本控制工具和软件资源配置管理工具,在实际的软件开发过程中,采用ClearCase进行版本控制能够实现真正意义的并行开发,提高开发效率。ClearCase具有两种应用的方式:Base ClearCase 以及 UCM ClearCase。这两种方式拥有着各自不同的概念、功能和应用范围:由于Base ClearCase 的概念相对简单,功能也比较单一,因而它易于掌握,适用于小型软件项目的开发过程中;而UCM ClearCase涉及的概念比较多,逻辑也相对复杂,它提供了更加丰富和完善的功能,因而较多的应用于大型软件系统的开发过程中。
ClearQuest作为软件变更管理和缺陷跟踪工具,在实际开发中,对于保障软件产品的质量,协调各开发团队之间的合作起到了相当重要的作用。ClearQuest是高度可配置的,可适应几乎所有的自动化流程设计,同时支持用户定义、工作流支持(可定制的状态机)、字段、表单和电子邮件通知等。
回页首
一、 ClearCase 与ClearQuest的集成
所谓ClearCase和ClearQuest的集成,就是指将ClearQuest中的变更请求(Change Request)关联到ClearCase中某元素(element)的某一版本(Version)上。一个变更请求可以被关联到一个或多个版本上,这些版本被称为变更请求的变更集(Change Set)。一个版本可以被关联到一个或多个变更请求,这些变更请求被称作版本的请求集(Request Set)。由于ClearCase的应用分为两种方式:Base 和 UCM,因而,ClearCase 与 ClearQuest的集成也具有两种方式:Base ClearCase 与 ClearQuest的集成以及UCM ClearCase 与 ClearQuest的集成。本文主要介绍的是UCM ClearCase 与 ClearQuest 的集成方式。
回页首
二、 UCM ClearCase 与 ClearQuest 集成的应用过程介绍
工程(Project)是UCM ClearCase的一个重要概念,要实现UCM ClearCase与ClearQuest的集成,首先必须在ClearCase UCM的环境里创建一个CQ Enabled Project,即一个激活了ClearQuest相应功能的工程(Project)。
下面将详细阐述UCM ClearCase 与 ClearQuest 集成环境的搭建,以及具体的集成的应用过程。
1. 环境搭建
1) ClearCase 方面,首先要创建一个Project VOB和 Component VOB,并且将新创建的Component VOB成为Project VOB的一个Component。
Windows 环境下:
- 创建Project VOB:选择Programs > IBM Rational > Rational ClearCase > Administration > Create VOB,输入VOB名称:pvob;选择"Create as a UCM project VOB"选项,表示要创建的是一个Project VOB;在选择administrator vob一项里,选择none。其他采用默认值,在确认页上单击"继续" ,完成Project VOB的创建过程。
- 创建Component VOB:选择Programs > IBM Rational > Rational ClearCase > Administration > Create VOB,输入VOB名称:cvob;选择"contain UCM objects",表示要创建的是一个Component VOB;在选择administrator vob一项里,选择刚刚创建的pvob, 建立这两个VOB之间的关系。其他采用默认值,最后在确认页上单击"继续",完成Component VOB的创建工作。
- 使cvob成为pvob的一个Component:从开始菜单里选择 Programs -> IBM Rational -> Rational ClearCase -> Project Explorer,选中pvob,从菜单中选择Tools ' Import ' VOB as Component,在弹出的选择页面中从左面的备选框中选择cvob,加入到右面的已选框,最后单击"import"。
图1 Import VOB
Unix环境下,可以使用命令行完成以上过程:
- 创建Project VOB:
> cleartool mkvob -nc -ucmproject -tag /var/tmp/pvob /var/tmp/pvob.vbs - 创建 Component VOB:
> cleartool mkvob -nc -tag /var/tmp/cvob /var/tmp/cvob.vbs - 创建Project VOB的component:
> cleartool mkcomp -nc -root /var/tmp/cvob comp_1
2) 在ClearQuest方面,需要做的准备工作有:
- 在选定的数据库关系系统上,创建schema 数据库和user 数据库;
- 如果是在Windows环境下应用UCM ClearCase 与 ClearQuest的集成,只需利用Windows 环境下的ClearQuest Maintenance Tool创建repository schema。
创建Sample DB时,Schema 的类型需要选择 UCM 类型:
图2 选择UCM 的 Schema 类型
- 如果是在Unix环境下应用UCM ClearCase与ClearQuest的集成,需要另外准备一台装有ClearQuest Maintenance tool的机器,帮助建立repository schema, 然后再在Unix机器上创建相应的connection 。这是因为,目前ClearQuest产品在Unix平台上还没有提供图形界面的Maintenance tool。
2. 创建CQ Enabled Project
下面主要以Windows环境为例,介绍CQ Enabled Project的创建过程。两种方式创建一个CQ Enabled Project:
- 创建Project 的过程中,指定该Project是CQ Enabled 从开始菜单里选择 Programs -> IBM Rational -> Rational ClearCase -> Project Explorer,选中pvob,从菜单里选择File ' New ' Project,为Project 设定一个名称,下一步;是否以一个已知的baseline为起点来创建这个Project,选择"否",下一步;加入Component的baseline,点击add,选择initial baseline;选中cvob前方的复选框,使得这个VOB可以被修改,即在将来的操作中可以在这个VOB里加入元素,或者对元素进行修改;选择"yes",使得所创建的Project 是可以和ClearQuest相关联的。这时,connection的下拉列表中会显示出之前在ClearQuest 端已经创建好的Connection的名称,从下拉列表里选中这个Connection,则User Database项会自动显示出与这个Connection 所对应的Sample DB的名称。 如果是初次登陆ClearQuest数据库,会出现一个登陆窗口,这里假设使用QE帐户登陆,也就意味着在接下来的操作中,只有分配给QE帐户的ClearQuest记录才能被关联。在确认页中选择"continue",一个CQ Enabled的Project:myproject 创建成功。
图3 创建CQ Enabled 工程
- 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的窗口:
图8 新建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进行良好的电子记录管理
这篇关于Clear Case 与Clear Quest的集成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!