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

ClearCase:使用旧基线活动创建新基线,clearcase,Clearcase,在集成流Int中,A1、A2、A3是活动,B1是包括A1、A2、A3活动的基线 (Int流)---A1------A2-----------------A3------[B1]-----------> 我们将部署新版本的软件,我们的项目经理说他没有 希望在此版本的软件中包含A2活动变更集 我们能否在ClearCase中创建只包含A1和A3活动的新基线B2 (Int-Stream)---A1--------------------A3------[B2]--------------------->

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

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

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

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


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

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

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

子流的基础基线应为最后一个基线(在IntStream上生成),不包括A1、A2和A3

然后:

该子流扮演“发布流”或“整合流”的角色,该流将包含构建最终发布所需的所有内容

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


注:

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

活动相关性:在这种情况下,A3可能有一些基于A2版本的版本

findmerge
命令仅对要合并的
变更集(版本列表)使用活动:

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

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


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

ccperl cset.pl -undo A2

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

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

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

子流的基础基线应为最后一个基线(在IntStream上生成),不包括A1、A2和A3

然后:

该子流扮演“发布流”或“整合流”的角色,该流将包含构建最终发布所需的所有内容

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


注:

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

活动相关性:在这种情况下,A3可能有一些基于A2版本的版本

findmerge
命令仅对要合并的
变更集(版本列表)使用活动:

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

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


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

ccperl cset.pl -undo A2

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

是的,我试过了,效果很好。非常感谢。您比IBM Turkey office更有用:)例如,我有一个类似Tree.txt的文件。在A1活动中,我向Tree.txt添加了3行代码,在A2活动中,我向同一文件添加了2行代码,在A3活动中,我添加了5行代码。当我尝试像上面那样执行“findmerge A1 A3”时,合并的Tree.txt文件包含我添加的A1、A2、A3行。我使用了“cset.pl-undo A2”命令,它删除了A2活动中的变更集,因此最终文件只包含A1和A3活动中的行。很有效。是的,我试过了,很有效。非常感谢。您比IBM Turkey office更有用:)例如,我有一个类似Tree.txt的文件。在A1活动中,我向Tree.txt添加了3行代码,在A2活动中,我向同一文件添加了2行代码,在A3活动中,我添加了5行代码。当我尝试像上面那样执行“findmerge A1 A3”时,合并的Tree.txt文件包含我添加的A1、A2、A3行。我使用了“cset.pl-undo A2”命令,它删除了A2活动中的变更集,因此最终文件只包含A1和A3活动中的行。它工作得很好。按请求添加了对“活动依赖性”的注释按请求添加了对“活动依赖性”的注释