ClearCase:使用旧的基准活动创建新的基准 [英] ClearCase : Making new baseline with old baseline activities

查看:67
本文介绍了ClearCase:使用旧的基准活动创建新的基准的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在集成流Int中,A1,A2,A3是活动,B1是包括A1,A2,A3活动的基线。



(Int流)- --- A1 ------ A2 ------------------ A3 ------ [B1] ----------- ----->



我们将部署新版本的软件,我们的项目经理表示,他不想
希望将A2活动变更集包含在其中此版本的软件。



我们可以在ClearCase中创建仅包含A1和A3活动的新基准B2吗?



(整数流)----- A1 ------------------------ A3 ------ [B2] ----- ----------->?

解决方案

否:由于B1存在,因此所有活动都是链接的



一种可能的解决方案是创建一个子流,并生成一个 findmerge 仅包含A1和A3

findmerge 是非UCM合并,仍然可以UCM活动列表作为输入)



子流的资助基准应该是最后的基准(在IntStream上生成),包括A1,A2和A3。



然后:

  ct findmerge活动:A1 @ \pvob活动:A3 @ \pvob -fcsets -c交货报告 -merge -gmerge 

该子流扮演发布流或合并的角色

父流(IntStream)继续集成所有开发工作(来自其他子流)






注意:




  • pvob应替换为项目VOB的名称(该VOB包含所有UCM数据,例如项目,流,基线,活动等)

  • ct 代表 cleartool:它是别名(Unix)或 doskey (Windows版本的别名: doskey ct = cleartool $ *






活动依赖性:在这种情况下,A3可能具有基于A2版本的某些版本。



findmerge 命令仅将活动用于合并它们的变更集(版本列表):


列出的每个版本变更集成为合并操作中的源版本。与往常一样,转换版本就是您认为的版本。


A3包括对A2所做的更改,最终结果将包括A1 ,A2和A3更改,除非A1和A3更改是并发的(相似的行上的更改):在这种情况下,将需要执行非平凡的合并。






由于您不希望更改A2,因此如注释中所述,您需要完成 findmerge 操作使用perl实用程序脚本 cset.pl

  ccperl cset.pl -undo A2 

它将执行负合并(或 substractive合并),删除任何更改为A2。


In an integration stream Int , A1,A2,A3 are activities,B1 is baseline that includes A1,A2,A3 activities.

(Int Stream)-----A1------A2------------------A3------[B1]---------------->

We are going to deploy new version of software and our project manager said that he did not want to include A2 activity changeset in this version of software.

Can we create new baseline B2 that only includes A1 and A3 activities in ClearCase?

(Int Stream)-----A1------------------------A3------[B2]----------------> ?

解决方案

No: Since B1 exists, all activities are "linked" by a common "timeline", and ClearCase will ask you to also include A2.

A possible solution would be to create a sub-stream, and to make a findmerge with only A1 and A3
(a findmerge is a non-UCM merge that can still take a list of UCM activities as an input)

The fundation baseline of the sub-stream should be the last baseline (produced on IntStream) not including A1, A2 and A3.

Then:

ct findmerge activity:A1@\pvob activity:A3@\pvob -fcsets -c "report for delivery" -merge -gmerge

That sub-stream plays the role of a "release stream", or "consolidation stream", that is a stream which will include all you need to build a final release.

The parent stream (IntStream) goes on in its role of integrating all development effort (coming from other sub-streams)


Note:

  • "pvob" is meant to be replace by the name of your project vob (the vob containing all UCM datas like projects, streams, baseline, activities, ...)
  • "ct" stands for "cleartool": it is an alias (Unix) or a doskey (Windows version of an alias: doskey ct=cleartool $*)

Activity dependency: A3 could in this case have some versions based on A2 versions.

findmerge command only uses activities for their changeset (list of versions) to be merged:

Each version listed in a change set becomes the from-version in a merge operation. As always, the to-version is the one in your view.

A3 including changes made in A2, the final result will include A1, A2 and A3 changes, except if A1 and A3 changes are "concurrent" (changes on similar lines): in this case, a non-trivial merge will need to be performed.


Since you do not want A2 changes, you need, as you mention in the comments, to complete that findmerge operation with a perl utility script cset.pl:

ccperl cset.pl -undo A2

It will perform a "negative merge" (or "substractive merge"), removing any changes for A2.

这篇关于ClearCase:使用旧的基准活动创建新的基准的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆