ClearCase:使用旧的基线活动创建新的基线

时间:2009-03-26 08:08:24

标签: clearcase

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

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

我们将部署新版软件,我们的项目经理说他没有 希望在此版本的软件中包含A2活动变更集。

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

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

1 个答案:

答案 0 :(得分:1)

否:由于B1存在,所有活动都由一个共同的“时间轴”“链接”,ClearCase会要求您也包括A2。

一种可能的解决方案是创建一个子流,并制作一个只有A1和A3的findmerge (a findmerge是非UCM合并,仍然可以将UCM活动列表作为输入)

子流的基金基线应该是最后一个基线(在IntStream上生成)而不是,包括A1,A2和A3。

然后:

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

该子流扮演“发布流”或“合并流”的角色,这是一个包含构建最终版本所需的全部内容的流。

父流(IntStream)继续发挥其整合所有开发工作(来自其他子流)的作用


注意:

  • “pvob”应替换为项目vob的名称(包含所有UCM数据的vob,如项目,流,基线,活动......)。
  • ct”代表“cleartool”:它是alias(Unix)或doskey(别名的Windows版本:doskey ct=cleartool $*

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

findmerge命令仅使用要合并的changeset(版本列表)的活动:

  

更改集中列出的每个版本都将成为合并操作中的from-version。与往常一样,to-version是您视图中的版本。

A3包括A2中所做的更改,最终结果将包括A1,A2和A3更改,除非A1和A3更改为“并发”(类似行上的更改):在这种情况下,需要进行非平凡的合并要进行。


由于您不希望进行A2更改,正如您在评论中所提到的,您需要使用perl实用程序脚本findmerge完成cset.pl操作:

ccperl cset.pl -undo A2

它将执行“负合并”(或“减法合并”),删除A2的任何更改。