1

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

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

我们要部署新版本的软件,我们的项目经理说他不想在这个版本的软件中包含 A2 活动变更集。

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

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

4

1 回答 1

1

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

一种可能的解决方案是创建一个子流,并findmerge仅使用 A1 和 A3制作 a
findmergea 是非 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要合并的(版本列表):

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

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


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

ccperl cset.pl -undo A2

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

于 2009-03-26T08:22:24.540 回答