ClearCase远程客户端实现功能详述(一)对CQ集成的支持与版本树 |
李小朝, IBM 中国软件开发实验室软件工程师 2006 年 4 月 03 日 ClearCase Remote Client可以实现大部分ClearCase客户端的功能,在本文第一部分中,您可以了解到UCM ClearCase与ClearQuest集成环境的配置以及为下一篇要谈到的在该集成环境下CCRC为用户提供的简单的操作程序和高效的管理流程做了环 境上的准备;第二部分表述了CCRC中ClearCase版本树的应用,用户如何通过CCRC来查看ClearCase的版本树并进行简单的 ClearCase操作。 1.配置管理工具ClearCase与缺陷管理工具ClearQuest的集成 使 用ClearQuest作为缺陷管理工具,并将ClearCase和ClearQuest进行集成,从而将变 更请求和配置管理对象有机的联系到一起。这样所有的Activity可以通过ClearQuest获得。用户可直接管理需修改的程序模块,掌握软件变更状 况。CC与CQ集成后,可以提供给用户软件某一版本曾经完成哪些变更的信息;某一个的功能增加共修改了哪些模块;在变更频繁的环境下,可以管理、跟踪及恢 复任何的变更;查询变更需求实际修改了哪些程序模块; ClearQuest和ClearCase集成,主要的集成方式有以下两种: 1) ClearQuest与Base ClearCase集成 集 成是通过将ClearCase的版本对象库(VOB)与ClearQuest的数据库相关联来实现的, 集成后开发人员在修改代码(Check Out)时会自动弹出ClearQuest的变更请求列表,并强制开发人员将此次修改与特定的变更请求相关联。这样一来,开发人员在代码提交时可以清楚的 知道哪些修改过的代码是对应哪些任务的,集成人员可以准确的了解到某次建立到底集成进来哪些变更请求。项目经理可以轻松的定位变更请求和哪些改动相关。 2) ClearQuest与UCM ClearCase集成 此 种集成方式与上一种集成方式从实现机制上没有本质的区别,但从功能上二者的集成 更加紧密,且很多功能更加自动化。如开发人员在提交代码时系统会自动检测出此次需要提交的变更请求,待开发人员确认后系统会自动对代码进行归并。总而言 之,UCM对于开发人员来讲使用非常简便且不要出错,对于集成人员来讲,由于UCM采用组建式管理,使得系统架构更加清晰,集成工作更加快捷。对于项目经 理来讲UCM为团队提供了一套完整且高效的变更管理流程。
2.CCRC 对ClearQuest与UCM ClearCase集成的支持 新 版本的CCRC对集成了ClearQuest的环境支持程度大大提高,本文介绍的特点与功能都是针对最新ClearCase版本上,ClearCase远 程客户端所能实现的所有功能而言。读者可能因为自己的ClearCase版本的不够新而与本文所述部分内容不符。希望本文对ClearCase这些新特 点,新功能的介绍,对您将来的工作与应用起到一点帮助。 一个关联了CQ的CCRC 服务器,表示该服务器上有一个或多个项目,建立了与ClearQuest之间的关联关系。当一个CCRC客户端连接到该服务器上并加入该关联项目,那么有关于该项目的所有活动与变更将被ClearQuest来进行存储和管理。 2.2.1 集成了ClearQuest的服务器(非Web) 该集成模式是CCRC较早些版本中能够实现的功能。在这种模式下,ClearQuest主要通过以下行为来管理所有的活动和变更请求。
CQ配置项,如下图所示: 非Web集成模式的图示如下: 2.2.2 集成了ClearQuest Web的服务器 CCRC新版本增加了对CQ Web的支持,使得CCRC客户端更具有易用性和灵活性。对于用户来说,更能方便的操作和使用ClearCase。
Web集成模式的图示如下:
根据实际的不同情况,CCRC客户端,CCRC服务器,CQ服务器,CQWeb和CQ Web Application在各个机器上的部署情况是多种多样的,关于CCRC服务器的部署,在本文中暂不作详细介绍。在这个例子中,我们以Web模式的一个配置为例: CCRC 服务器/ CQ服务器:linux CCRC 客户端:windows 准备工作:
Web 模式的关键在于CCRC服务器上ccweb.conf文件,该文件体现了CCRC和CQWeb之间的集成关系。在CCRC服务器< CCHome>/config/ccweb/目录下,将ccweb.conf文件拷贝至<CCHome>/var/config (Windows) 或/var/adm/rational/clearcase/config (Unix),所做的编辑工作都在这个拷贝副本上进行。 -cqweb_url参数。 该参数是否设置决定了集成是web还是非web模式。该参数指向的地址为CQWeb App所在位置。具体形式:http://<cqweb server>/cqweb -cqweb_browser_timeout: 该参数表示客户端如果一直不关掉浏览器窗口,CCRC服务器的等待时间。该参数的默认值为30分钟。 -cqweb_autologin: 表示每次打开CQ Web是否为用户自动登录。默认值为true,会自动为用户登录CQ.用户也可以改为false,以增强安全级别。 打开CQ Maintenance工具,选择"模式库-〉创建",为该模式库命名; 选择数据库类型,依次填入服务器,数据库,用户名,密码,连接选项;这些项目的具体含义这里就不赘述,可以参考CQ用户使用手册来获得相关信息。 模式库成功创建后,如图所示: 接 着,打开CQ Designer工具,来编辑模式文档。举例来说,我们选择"记录类型-〉Defect-〉字段",添加一个SHORT_STRING类型的字段,命名为 "SQUIDWARD"。在"记录类型-〉Defect->状态和操作-〉行为"中,将该字段的"opened"属性设置为"Mandatory" 参数。打开"表单-〉Defect_Base"一项,通过添加选项卡,将我们创建的"SQUIDWARD"域拖入该选项卡。至此,模式的简单编辑就算完成 了。将该模式检入并基于此模式,生成一个用户数据库。 执行此步骤的意义在于,令ClearCase服务器上的项目能够找到所要集成的ClearQuest数据库信息。 在Linux平台上,ClearQuest的安装目录下,执行clearquest命令,启动clearquest GUI. 打 开"文件-〉数据库-〉管理连接",选择"添加数据库集",相当于把在windows上创建模式库的过程重复了一遍,模式库的名字可以重新命名,它只是一 个在CCRC上对CQ 数据库注册的一个标示。添加成功后的数据库集显示在"可用的数据库集"一栏中,这还不够,还需要创建一个连接来登录该数据库,选"添加连接…."按钮。在 弹出的对话框中,输入一个登录该数据库的用户名,该名称将被用于以后在集成环境中,再次登陆CQ数据库的登录名称。下图表示在Linux服务器上创建好了 的数据库集与连接列表。可以创建多个数据库集,每个数据库集可以对应多个以不同用户登录的连接。 3.4 在CCRC 服务器上实现CQ与UCM ClearCase的集成设置 前面的环境都搭建成功的话,这一步可以说水到渠成,非常容易。将CC的项目与CQ集成,既可以在创建项目初期,也可以对一个既有项目进行集成配置。
到这里,Web集成模式环境搭建已经完成。在下一篇,我们将详细介绍CCRC客户端在集成环境下如何进行版本控制;如何通过CQ的定制来实现活动状态自动转化;如何真正实现高效的变更管理流程。
基于CCRC的版本树和普通CC的版本树基本是相同的。都是将一个元素的版本用节点来 表示,逻辑有序的排列起来,形成一个树状结构。版本树中不但可以显示版本、分支的信息,而且可以进行简单的CC操作。 在版本树中,一个元素的分支和版本被显示成连接的节点。版本树的节点分为两种,一种是分支节点;一种是版本节点。每个版本节点上,会显示版本号,节点的旁边会显示于此版本相应的一些信息,例如:关联的活动名称,标签名称。 版本树提供了一个显示一个节点详细信息的功能,即所谓的快速详细信息。打开版本树,右键单击一个节点,选择快速详细信息功能,可以打开快速详细信息窗口。快速详细信息窗口中显示的信息包括:
按下拴牢窗口按钮后,窗口会根据鼠标的选择,显示当前选择对象的详细信息。 版本树可以在任何一个包含CC控制的资源的Eclipse场景中打开。 2.1 在CC详细信息视图中 右键单击一个元素,选择工具->显示版本树。 2.2 从其他场景的小组集成菜单打开 选择一个元素,右键单击,小组->显示版本树. 2.3 从历史视图中打开 选择一个元素,打开它的历史视图。右键单击一行,选择显示版本树。 2.4 从CC导航器视图中打开 右键单击一个元素,选择工具->显示版本树。 3.1 展开/收缩整个版本树 在实际的使用过程中,有可能版本树庞大。在这种情况下,可以选择显示部分版本树,在需要的时候也可以显示整个版本树。单击菜单栏上的 按钮,可以展开/收缩版本树。 3.2 刷新版本树 当一个元素被修改而导致版本树发生了改变,点击刷新按钮,可以显示最新的更改。 3.3 显示/隐藏不感兴趣,合并箭头,废弃分支 所谓的感兴趣版本是至少满足下面几个条件中的一个条件的版本:
点击菜单栏上的显示隐藏不感兴趣版本按钮,可以显示隐藏不感兴趣的版本。一般情况下是一个分支的0版本。 点击菜单栏的隐藏合并箭头,可以显示/隐藏合并箭头。 在实际使用CC的过程中,有些分支会被废弃。对于废弃的分支,会有一个标志出现在分支节点的旁边。点击隐藏废弃的分支按钮,可以显示/隐藏这些废弃的分支。 3.4 菜单按钮 点击菜单栏的最右边有向下的箭头,点击这个按钮,所有菜单栏上提供的功能,在这里都可以看到。 3.5 放大、缩小版本树 为了方便的查看版本树,CCRC提供了放大/缩小版本树的功能,点击放大/缩小按钮,可以放大/缩小版本树。 3.6 查找特定版本 在实际的使用过程中,如果版本树过于庞大,则查找某个特定的版本困难。这时查找功能就会显示它的作用。 查找功能分两种:
查找的时候可以选择向前或者向后查找。 如果查找到相应的节点,则此版本就会显示在视图的可视范围当中,并且闪烁三次,节点旁边有一个箭头指示。 有时候用户只对某个特定分支的版本有兴趣,这时候用户可以右键单击某个分支节点,选择隐藏分支前趋,则版本树就只显示这个特定分支。 如果需要打开分支前趋,则双击分支最上边的小图标,即可以打开这个分支的前趋。 3.8 未提取版本标记 如果一个版本树有多个分支,则默认只显示当前view选择版本所在的分支,其他分支会用一个标记来显示。如果需要显示其他分支,则双击此标记,就可以打开其它未提取的分支。 3.9 打开以前提取的版本树 在CCRC中,会保存一个以前提取的所有版本树的列表,可以通过这个列表,快速访问以前打开的所有版本树。 单击版本树视图中菜单栏上 图标右边的尖头,打开版本树列表的下拉菜单,选择一个元素,就可以打开它的版本树。 单击此按钮,可以打开一个包含以前访问过的所有版本树的对话框。在这个对话框中,可以打开或者删除一个访问过的版本树记录。 3.10 打开所选版本的内容 如果一个元素的文件类型在系统中有关联的编辑器,在版本树中双击一个版本节点,可以打开这个版本的内容。也可以右键单击一个节点,选择"打开…"来打开版本内容。 在版本树中可以对节点进行一些CC的操作,当选定一个节点时,相应的操作就会在菜单栏和环境菜单显示。这些操作包括: 检出检入,取消检出 查看版本属性 标签相关操作 其中,检出、检入操作只对当前视图所选版本有效, 4.1 与前趋版本进行比较 在版本树中选择一个版本,点击菜单栏上的与前趋比较功能按钮,就可以打开版本比较对话框。 4.2 与其他版本进行比较 选择一个版本,点击与另外一个版本比较...,这时候会弹出一个指针,提示用户选择一个版本进行比较。选择要比较的版本并点击确定,则可以完成比较操作。 4.3 打开节点属性 右键单击一个节点,选择属性,就可以打开一个版本的属性对话框。 4.4 检出,检入 检出检入只对当前视图选择的版本有效。选定要检出或者检入的版本,右键点击或者选择菜单栏上的按钮,就可以进行检出检入操作。 4.5 撤销检出 右键点击检出的版本,可以进行撤销检出操作。 4.6 打Label 选择一个版本,右键点击,选择应用标签,即可以弹出应用标签对话框,进行应用标签的操作。
1.Maintenance Tool Maintenance Tool(安装目录中cqdbsetup.exe)是在使用CQ前必须配置的。 在Maintenance Tool中,必须Create或New Connection至少一个Schema Repository。无论是Designer、客户端还是Web服务器最后都必须连接Maintenance Tool中的Schema Repository。 模式库,所有的Designer中的模式都附属于特定的模式库 如果有多个Schema Repository,在使用designer、客户端、Web服务器的时候,必须选择特定的Schema Repository,之后的操作都在此Schema Repository中进行。 2.Desinger Desinger(安装目录中的cqdesign.exe)是设计模式使用的。 在 进入Desinger的时候,如果Maintenance Tool中有多个模式库,必须选择一个Schema Repository才能进入Desinger,此时在Desinger中设计的所有Schema都附属于此登陆的Schema Repository,并且所有Schema信息都储存于对应的数据库中。
|