SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2912|回复: 1

[推荐] 结合Rational Change和ClearCase实现无缝的变更和配置管理

[复制链接]
发表于 2013-1-24 16:25:52 | 显示全部楼层 |阅读模式
本帖最后由 技术狂人 于 2013-1-24 16:33 编辑
. I! s) U1 E% F8 S' I3 e& U
, z8 p+ C) J9 x. E简介5 z( f+ x* }( n5 l2 m/ L
在任何软件开发场景中,我们每天都会做出很多变更,添加新的代码,删除旧的数据,等等。为此,我们将使用 Rational ClearCase 来跟踪我们对自己的数据或代码所做的更改,并跟踪我们的软件版本。此外,在开发周期中,我们会测试所开发的软件。当我们测试某个软件时,必然会处理许多变更请求,并且需要做出很多改进。这些变更请求都在 Rational Change 中进行维护。集成这两个工具的目的是无缝地联合它们,这样我们就可以知道针对某个变更请求的代码变更是否已到位,反之亦然。该集成在 Rational Change 中的变更请求和 Rational ClearCase 中的一块代码之间创建了一个链接。
" z% u$ E4 c2 _集成 Rational Change 中的变更管理和 Rational ClearCase 中的配置管理,带来更好的软件开发生命周期管理。
7 K8 N, E  ?* O* t; }& E5 v
. F4 u0 g* V8 A- V先决条件$ v1 l2 L! x6 J7 ?; ?5 e9 N
IBM® Rational® Synergy基于任务的配置管理解决方案,使分布在全球各地的开发团队在统一的配置和发布管理平台上一起工作$ U8 S4 w7 {8 D- y% d4 t
IBM® Rational® Change一个基于 Web 的变更管理解决方案,在整个软件的开发生命周期中跟踪软件质量,并提供强大的查询和报告机制
7 G: [7 x- L+ ?/ v- A7 \ IBM® Rational® ClearCase®软件配置管理工具,可以帮助团队对其源代码和其他项目构件使用版本控制,支持并行开发和图形合并功能,从而加速开发周期1 I, e0 ]# {+ b

$ F: @; h9 \$ ]) r

) [$ ^$ W' g' P( ?6 I% z7 v( c术语0 |* i% I* `4 r/ U1 ]. L" u. F- B
VOB(版本对象基础)一个 ClearCase 存储库,用于存储文件和目录元素9 y% k9 |9 J$ W/ A' @) x* O4 Y
CR(变更请求)一个 Rational Change 缺陷或改进请求
  s5 D( l+ e# K/ O! U% O
2 j, c" O4 [0 |' t
9 T! J3 n) ]0 k3 }
安装和配置集成
% K$ q2 `& }5 z+ p6 f
  • 在 UNIX 或 Windows 计算机上安装 Rational Synergy、Rational Change 和 Rational Change for ClearCase Interface 的服务器端组件(如 Rational Change for ClearCase Interface readme 文件所述)。
  • 在安装了 Rational Change 的同一台计算机上,或者在另一台 UNIX 或 Windows 计算机上安装 Rational ClearCase 和 Rational Change for ClearCase Interface 的客户端组件(如 Rational Change for ClearCase Interface readme 文件所述)。该客户端安装程序会安装 Rational Change for Rational ClearCase Interface - Configuration Tool,用它来收集 Rational Change 服务器详细信息并配置由集成使用的 ClearCase 触发器,如图 1 所示。
    + R: k6 C+ i0 O2 N0 {$ u* ]$ c# k

% X4 ~0 F/ q4 w) P) i图 1. Rational Change for ClearCase Interface - 配置工具
: q) `7 i9 ^. u7 |$ E' b( A# y
0 Z( ~, F; P& R# ^注:+ G" g; x$ e) {' H$ K: j# Y
如安装步骤中所述,Rational Change 被视为服务器,而 Rational ClearCase 被视为该集成的客户端。
1 t6 H# V% I/ H
2 ?1 A5 d! n/ y5 ?# z( h' Z0 A& g

6 A' [$ N, H$ C+ \1 E) f& N2 |$ D集成 Rational Change 与基础 ClearCase 模型
; Z2 {7 N% v/ \设置集成2 |. M/ g/ K8 W4 `, n$ \
  • 在 Rational ClearCase 中创建一个版本对象基础 (VOB),并打开配置工具。VOB 将列在左侧的 Rational ClearCase VOB 下面。
  • 单击该 VOB,提供 Rational Change 服务器的详细信息,为 VOB 的签入和签出操作选择各自的触发器策略,并保存更改。可以通过 Rational Change Queries 提取查询字段的值。例如:(cvtype='problem')
  • 选择触发器策略。常用的策略是 Prompt,它需要选择 VOB 上的签入和签出操作。& o1 d. x. O  u7 w9 O7 z3 L
    • 如果选中了 Do not prompt users 策略,那么在出现 VOB 上的签入/签出操作时,集成不会提示用户选择一个 Rational Change 变更请求 (CR)。
    • 如果选中了 Prompt, but do not require selection(s) 策略,那么在出现 VOB 上的签入或签出操作时,集成将提示用户选择一个 Rational Change CR。CR 的选择将不是强制性的。
    • 如果选中了 Prompt, and require selection(s) 策略,当出现 VOB 上的签入/签出操作时,该集成会提示用户选择一个 Rational Change CR。CR 的选择将是强制性 的。如果没有选择 CR,该操作不会继续。
      6 _2 i) ^; ~$ t
图 2 显示了为 Rational Change 配置一个 VOB。- L/ z; A3 N9 o# c

0 m% Y8 Y& E- ~. N+ D% k. Q图 2. 在一个 VOB 上配置 Rational Change# R0 U- i) r6 s( p
$ r. ~1 ^2 q. E


( n% g7 S  `$ n/ G$ O! V  ~" o. A6 E+ D1 O
从 Rational ClearCase 签入和签出, T7 Q, S6 U- N# |; i* ?
接下来,您将创建 Rational Synergy 任务,同时在 Rational ClearCase 中工作,并查看如何集成 ClearCase 与 Rational Change。
( s$ n; S; R" V8 H2 ?
  • 转到 Rational ClearCase 资源管理器并选择您创建的 VOB - 即使用配置工具创建的、存储了 Rational Change 服务器详细信息的那个 VOB。
  • 在该 VOB 中创建一个目录或文件。现在,这将是我们的集成的对象。通过该对象的上下文菜单,执行操作(签入或签出)。" A/ j4 _' k& m% D% @
因为在配置上选中了 Prompt, and require selection 选项作为触发器策略(参见上面的图 2),它打开一个 CR 选择对话框,其中包含来自 Rational Change 的 CR。如图 3 所示。被填入该选择对话框中的 CR 仅限于在配置中所指定的查询范围。这里的查询是:               
9 m& C2 Z: S. n% Z/ T& K; T9 m(cvtype=problem) and (crstatus=assigned)- [$ i/ j1 r# N
所以,它填入目前是 assigned 状态的 CR。% x% _- U4 h7 G
6 z8 e! _  }% J& r, w) H/ {
图 3. 在 Rational ClearCase 对象的签入或签出过程中的 CR 选择对话框
7 @+ H4 F- v6 ]3 e; p6 W5 L+ {( C3 C, _6 A
签入/签出操作完成后,集成任务是在 Rational Synergy 中创建的,并与上一步中所选择的 CR 关联。在 Rational Change 中的 Associated Tasks 字段中查看 CR 上的集成任务,如图 4 所示。通过提要 (synopsis) 可以很容易区分集成任务和非集成任务。例如,集成任务的提要是这样的:ClearCase Integration Task。  h( N2 b- w4 l3 R. H
4 R) S5 v% w( Z
图 4. 与 CR 有关联的集成任务
+ D. b3 \% ^6 V4 r9 c" B/ r9 c8 U* t$ a8 S% J4 W5 H! o$ Q
如果已经有一个与 CR 关联的集成任务,则不会将另一个集成任务关联到同一个 CR。相反,它会将已签入或签出的对象添加到相同的集成任务。但是,本例中有一个例外:一个 CR 可以有两个集成任务,有一个集成任务已经完成。它不会重新打开已完成的集成任务,而是在来自 Rational ClearCase 的对象上进行签入或签出时创建一个新的集成任务。如图 5 所示。7 F; ^( A- S" R4 I* K& G% P
& U+ k' g" @2 ]8 y+ t( C
图 5.                    CR 上的集成任务状态
' q6 P' w1 v( L: u0 M
4 P% _. W/ Z' p( {) C
  • 在 CR 上的 Associated Tasks 的下面,单击任务 ID 链接(编号的链接)以显示任务下面的对象。
    7 l" \, I5 o+ K3 r. h  I
这会打开任务对话框,在任务上的 Associated Objects 字段下面显示对象。这里所列出的对象是在 Rational ClearCase 中已签入或签出的对象,CR 是针对该对象进行选择的。该字段下所列出的每个对象都会显示已签入或签出的对象名称及相应的状态,该状态可以是 integrateworking。与任务相关联的对象如图 6 所示。
: p$ {. d/ p: \; I: _+ }& }% D" ?- X1 Q. m
图 6. 在任务上的关联对象
1 W9 N; w1 J: q( |% o! R( k. E( l& L6 y1 m  f7 X. X

) C7 ]! q3 f# P% X3 ?9 o6 r( Y已签出的对象显示为 working 状态,而已签入的对象则显示为 integrate 状态。所以,在图 6 中,用户会看到该任务有两个与其有关联的对象:, i* g# \7 D" R' l4 N
  • cc2.txt,显示为 integrate 状态
  • cc4.txt,显示为 working 状态
    7 ~) E/ i- R" x$ L+ L
到目前为止,您已经了解了 “CR-任务-对象” 的关联。现在,您会看到需要完成从该集成创建的任务时会发生什么。请记住以下两点:7 R! j4 x. B0 G
  • 只有所有关联的对象都处于 integrate 状态时,任务才能完成。如果有任何关联的对象处于 working 状态,则无法完成任务。
  • 如果与 CR 有关联的所有集成任务都有处于 integrate 状态的对象之后,就可以直接从 Rational Change 解析 CR。解析 CR 将自动完成与 CR 有关联的集成任务。4 X% j: }. y/ ~' f$ Z5 T
在基础 ClearCase 上撤消签出
" T( y& H/ }% H, }( [想像一下,如有签出了一个对象,并且在 Rational Change 上将该对象与某个 CR 上的集成任务相关联。0 Z, \3 M* x, h0 `; v
当您在 Rational ClearCase 中执行 Undo Checkout 时,会删除关联到集成任务的对象。如果该对象是与该集成任务有关联的惟一对象,那么还会删除集成任务。. A, s0 r/ ~" e! n9 g


- I: P3 n' N! ~  m* g2 v/ D. n2 }3 q+ s
集成 Rational Change 与 UCM ClearCase 模型6 ~3 i, K; ]6 A3 T% [# n
设置集成: k8 O$ ?8 l; [$ [3 P
  • 在 Rational ClearCase 中创建一个 UCM 项目和一个 VOB,并在配置工具中选择该 VOB。
  • 提供 Rational Change 服务器详细信息并选择触发器策略。
  • 出于本教程的目的,请在配置工具中的 "Activities - Create activity policy" 下面选择 Prompt, and require selection(s)(参见图 7)。
    # ^  I; W0 C! ]& y% R0 F

/ }9 c0 {/ G# `# t5 a' n图 7.                    创建活动策略
: w: b' o- z8 d% f; _
' L. j+ E& X; t- B7 ^2 o6 a使用活动和对象
+ p8 E% Z$ @: N; |* e' K
  • 在 Rational ClearCase 资源管理器上,选择所创建的 VOB(配置了 Rational Change 服务器详细信息的 VOB)。
  • 在这里面创建一个对象(文件或目录),并将它添加到源控件。
    6 O8 W9 @# T% S; O( c/ {' B2 X- n
该集成会提示您创建一个新的活动,如图 8 所示。
- B" w$ G/ Y8 Y, _
# _8 e9 }% i! n7 b! w& P8 P6 g7 W图 8. 新活动的创建$ p1 h2 {0 w! j# s2 P% f# t

, S$ Z& j- @% w5 b9 X因为您已选择了 Prompt, and require selection(s) 作为 "create activity" 的触发器策略,所以在创建一个新的活动时会提示您选择一个 CR。选择一个 CR 之后,系统会将一个集成任务关联到该 CR。任务描述会显示创建该任务所针对的任务(参见图 9)。  }+ Z4 _* `+ r8 @* X/ D9 _

9 u5 J& q: e. N  J图 9. 任务描述会显示创建该任务所针对的任务
# G) |% `' T5 r* y7 y$ b0 r6 [: C4 j* \2 `6 C6 p) c& z
在对象已签入或签出的情况下,如果集成任务已与选定活动的 CR 有关联,那么该集成不会再创建一个新的集成任务。但是,如果集成任务已完成,则会创建另一个集成任务,并将它与带有活动详细信息的 CR 相关联。1 P7 @. v' I. V$ v' w7 E0 W0 |
现在,UCM ClearCase 中已创建了一个活动,您已准备好转到 Rational ClearCase 对象。类似于基础 ClearCase,当您签入或签出对象时,集成将在 Rational Change 中创建对象并将它们与任务相关联。
8 U8 r3 B- Y+ a0 M  b在 UCM ClearCase 上撤消签出
9 _% R' L; W1 }8 A6 ?* b; j; D想像一下,如果签出了一个对象,并且将该对象与某个集成任务相关联,而该集成任务又与 Rational Change 中的一个 CR 有关联。
8 P. P4 J! _& R$ X2 w3 P当您在该对象上执行 Undo Checkout 操作时,会删除与任务有关联的对象。不过,没有删除任务本身,它仍然与 CR 有关联。用于对象签出的活动也没有删除。所以,即使没有对象与任务都有关联,“CR-任务” 和 “任务-活动” 关系仍保持完整。5 {' d/ I9 c: U- J" [7 k
删除活动! j' i5 l4 g0 y! z8 z, x' j
如果某个活动没有与它有关联的任何变更集(ClearCase 对象),那么可以删除它。当删除​​此活动时,还会删除与该活动有关联的 Rational Synergy task 任务,前提是没有其他占位符对象与该任务有关联。
  n( `  S' q* V7 A0 r. {" [交付已完成的工作' X3 Y+ j* S& Y5 P" C! X
当您完成开发流中的开发和测试工作时,您需要将工作交付给集成流,以便能够与其他组件一起接受测试。3 c1 p# m& r6 Z0 Z( |5 _: ]2 B
  • 从项目资源管理器中将活动从开发流交付给集成流。
    . N+ P5 _! U' s0 `/ r  H7 O
在将活动合并到目标集成流并且您对测试结果感到满意之后,就可以完成交付流程了。完成交付流程还会完成与所交付活动有关联的 Synergy 任务。集成会自动将所有与任务有关联的对象转换为 integrate 状态。
  x8 T7 |) u- N( w注:
- C% [. {  H2 _) K4 Y( G1 M1 ^
  • 如果将配置工具上的交付活动策略设置为 Do                        not make activity obsolete on deliver(如图 10 所示),那么活动会在完成交付之后保持 unlocked 状态。这意味着,可以在 Rational ClearCase 上进一步使用该活动,并且可以在该活动下面执行工作。9 s: A0 ~' s% q; I

% Y% t' q( @# h+ w图 10. 交付活动策略 - do not make activity obsolete+ \9 c- q0 k. O
, t  ]/ {' l# ^
  • 如果将配置工具上的交付活动策略设置为 Automatically make activity obsolete on deliver(如图 10 所示),则会淘汰该活动。3 Z) o% @& V, c) H
  J6 H) q/ @" f" U
图 11. 交付活动策略 - make activity obsolete
+ J4 H" r' R& F6 G4 M! G
2 b: c& A# P' ]4 s
  • 您可以查看活动 Properties 对话窗口,看看活动是处于 locked 还是 obsolete 状态。
    4 _: S( a' v  ~4 g  A0 [3 b
当某个活动在交付过后遭到淘汰时,就无法将该活动进一步用于工作。如果尝试将已淘汰的活动用于任何对象上的签入或签出,则会导致如图 12 所示的错误消息。
8 x( m& `  W* G4 z9 M# n+ M0 p1 I3 x5 {, k- J
图 12. 使用已淘汰的活动时出现的错误
1 }/ ^/ l" c7 q" z% Y- t
% N5 w3 j# k+ }+ f
+ [0 @  n( i3 s1 W' V

! Q3 Z: }0 {% a6 _5 i, p  r3 uRational Change 集成报告- o8 ^. w0 D5 t
本文中的 “先决条件” 小节提到了,Rational Change 提供一个强大的报告机制。您可以使用该特性来查看集成报告。. u: ?& L% }! n  O) I
  • 以用户身份登录 Rational Change,并选择 Reports >                        System
    ( ^! e, q0 Z* e8 d/ E
屏幕列出了该集成提供的 ClearCase CRs-Objects、ClearCase CRs-Tasks-Objects 和 ClearCase CRs-Tasks-Objects (Long) 报告。可以在左侧看到该列表,如图 13 所示。& n$ \4 t  {1 t7 k5 R5 X9 P6 x  d

5 ~% V% U0 W/ T; P. u6 }" V! g图 13. 集成报告菜单. R& J( ]" p4 D
6 e- x' j4 N+ V/ U, K
  • 单击报告链接,以查看某个特定的报告。0 v8 D" E; r2 a2 Y3 D9 e6 I: n
ClearCase CRs-Objects 报告% o) G2 h6 E# u6 S3 q6 z8 M) n' e
该报告显示了一个 Rational Change CR 以及与该 CR 上的集成任务有关联的 Rational ClearCase 对象之间的关系。对于为 VOB 指定的查询范围内的所有的 CR,都可以看见该关联。
1 z' D, R- @4 `' ]" M# B图 14 显示了报告中的一个这种关联。
$ |; j0 w* \% L& z( Q6 _4 k  N4 B5 d0 Z5 k! k
图 14. ClearCase CRs-Objects 报告5 V$ _% E; a5 U7 n7 u: j
; i8 F) V7 O5 a8 i4 P& K' T$ C
ClearCase CRs-Tasks-Objects 报告/ c# u& M! }0 l* A- f% G2 I
该报告显示了 Rational Change CR 和 Rational Synergy 任务的关系,以及 Rational Synergy 任务到与集成任务关联的 ClearCase 对象的关系。报告中的一个关联示例如图 15 所示。
( J* K' T  f4 \6 o0 p6 L- ~) N5 \9 \2 @% F
图 15. ClearCase CRs-Tasks-Objects 报告2 j9 V' U+ S1 H9 `' \6 E

6 A5 G1 i9 j2 O, XClearCase CRs-Tasks-Objects (Long) 报告/ {# h- V% S! k* P: W
该报告显示了 Rational Change CR 和 Rational Synergy 任务的关系,以及 Rational Synergy 任务到与集成任务有关联的 ClearCase 对象的关系。报告中的一个关联示例,如图 16 所示。这是一个更详细的报告,因此,它列出了对象的更多属性。
; `0 W' A' T! N* t9 t8 p# E2 T+ }) g8 K# ~8 r
图 16. ClearCase CRs-Tasks-Objects (Long) 报告0 I5 B* n; f. ^7 M/ ~$ e+ q0 _
% g3 e0 m! y- `  N
如果需要在报告中显示其他信息,那么可以使用 Rational Change 进一步定制这些报告。. X: r2 w0 j: F1 D
6 s5 R+ Y" S4 W

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
 楼主| 发表于 2013-1-24 16:30:01 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-1-20 12:03 , Processed in 0.074476 second(s), 8 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表