代码之家  ›  专栏  ›  技术社区  ›  caltuntas

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

  •  1
  • caltuntas  · 技术社区  · 16 年前

    在集成流int中,a1、a2、a3是活动,b1是包含a1、a2、a3活动的基线。

    (int流)-----a1------a2----------a3------[b1]---------------->

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

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

    (int stream)------a1---------------a3------[b2]--------------->?

    1 回复  |  直到 12 年前
        1
  •  1
  •   VonC    16 年前

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

    一个可能的解决方案是创建一个子流,并使 findmerge 只有A1和A3
    (A) 发现合并 是一个仍然可以将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版本的版本。

    发现合并 命令仅将活动用于 changeset (版本列表)要合并:

    变更集中列出的每个版本都将成为合并操作中的源版本。和往常一样,目标版本在您的视图中。

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


    由于您不希望A2更改,因此您需要(正如您在注释中提到的)完成该更改。 发现合并 使用Perl实用程序脚本的操作 cset.pl :

    ccperl cset.pl -undo A2
    

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