ClearCase命令mkbl的描述

mkbl命令是ClearCase UCM中使用得较多的一个命令。本文对其的命令描述(参见cleartool man mkbl或者IBM的官网)进行了简单翻译,如下:

mkbl命令用于建立baseline或组合baseline。baseline代表了特定stream上特定component的变更的快照:它代表了一个component的版本。 对于每个component中的element,baseline记录了stream配置后mkbl选择的element的版本。baseline还记录了stream中activity的列表,stream的变更集包含了component的element的版本。

     一个baseline选择一个component中的element的一个版本。一个component可以建多个baseline,如同可以建立element的多个版本一样。一个baseline只与一个component联系在一起,每次mkbl命令的执行只能对一个component建立一个baseline。

     默认情况下,从最近的一个完全baseline(full baseline)开始,所有发生变更的component都被认为是新baseline的候选。你也还可以建立stream中component子集的baseline或者为特定活动的component建立baseline。

如果项目组工作在多component基础上,那可以建立组合baseline。组合baseline是一个选择其他component里的baseline的baseline。 可以使用组合baseline来代表整个项目的baseline。这会简化一组baseline(一个component对应一个)的追踪。建立一个component用于存储组合baseline。(关于如何建立这样的component,可以参考mkcomp )在这个component里,通过–adepends_on选项添加成员baseline来建立组合baseline。

初始baseline(Initial baseline )

当建立一个普通的component(包含目录和element),它包括一个名为component-name_INITIAL的初始baseline。这个baseline选择component的根目录的/main/0版本,做为后续baseline的起点。

为没有更改的component建立baseline

使用–identical选项为一个没有更改的component建立baseline。这对在几个component上的工作很有用。你可以为一组component建立baseline,而不管它们是否发生了变更。

建立包括一组活动(activity)的baseline

默认情况下,自最近一次建立baseline以来所有的变更活动都将被新的baseline捕捉到。你可以为新的baseline选择包含活动的子集。如果活动的变更集之间没有依赖关系的话,可能就不能够包含想要的活动。你需要同时包含活动所依赖的活动。

如果选择的活动是同一个component的部分活动,单一basline会被创建。如果一个活动使得多个component产生了变更,对于每个变更的componet一个新的baseline会被创建。

在现有的依赖关系基础上建立新的组合baseline

建立新的组合baseline的操作是递归的。就是说,这个操作首先建立它成员component的baseline,之后,参考组合baseline里的这些baseline建立依赖关系。结果是生成保留前任依赖关系的组合baseline。

建立或改变组合baseline的依赖关系

你可以通过使用–adepends_on或–ddepends选项创建或改变组合baseline的依赖关系。当涉及到某个component的依赖关系被添加后,必要的话,那个component的baseline也会建立。这些操作只应用于组合baseline的直接成员,不影响baseline体系中的间接成员。一个丢弃的component仍然有依赖关系体系底层的baseline。

注意:改变现有的依赖关系,你必须建立新的组合baseline。你不能通过chbl改变现有的baseline的关系。

通过导入label建立baseline

你可以通过mkcomp命令把一个VOB作为component。当你做这个操作的时候,这个VOB通过选择component根目录的/main/0版本而被打上了初始baseline。然而,这个baseline不会自动地使得VOB中现存的文件和目录可访问。

你可以建立新的baseline,对应于VOB或一个VOB的component打过label的版本的集合。可以通过-import选项来实现。mkbl命令选择打过label的版本建立baseline,使UCM工程能够访问得到这些版本。

在建立baseline之前,保证label是非锁起来的(unlocked)和原始的(非全局的),且打过标签的element被checkin了。一旦baseline被建立,label就无法删除除非是特权用户。确定label选择到了所有可见的element的某个版本。

baseline的名字

baseline标识符是用户指定的附有数字的baseline的名称。如果有必要,要使baseline的名称在PVOB中唯一。如果项目已经定义了一组模板baseline的名称,baseline的创建将采用该模板。更多定义baseline名称模板的信息,请参阅mkproject chproject。

以上规则的特例是初始baseline和由label建立起来的baseline。初始baseline的名称是以component-name_INITIAL的形式的命名的。当通过导入一个label的方法来建立baseline时,它的基本名字由label类型选择器产生。例如,label类型选择器REL1@/vobs/baz生成REL1作为baseline的基本名称,它的范围是baz component。

baseline label

你可以决定在baseline创建的时候baseline的版本是否被打上标签。 baseline可以不打上label(标签),或打上增量标签,或打上完全标签。当它们生效时,baseline label不能够移动。

所有的baseline记录了stream的当前的配置,但是只有打过标签的baseline能够被用于配置其他stream(通过rebase的方法或者mkstream)

选择适合的工程结构的label策略。增量baseline传统上可以比完全baseline建立得要快。

  • 对于完全baseline,建立其所花的时间与component中的element的数量成比例 ;
  • 对于增量baseline,建立其所需的时间与自上一次完全baseline后发生变更的element的数量成比例。
baseline建立过程中控制label的选项:
  • -nlabel选项建立非标签baseline。非标签baseline不能被用作配置stream的基本baseline。它可以和diffbl命令一起使用;
  • –incremental选项为自最近一次完全baseline建立后的变更的element的版本打上标签;
  • –full选项通过component中的每个element的某个版本的选择和打标签的方法来创建baseline。 

每当新的baseline建立的时候,mkbl会检查任何最近的baseline是否是没有打过标签的baseline。如果找到任何一个的话,mkbl将发布一个警告并且显示未打过标签的baseline。你可以通过chbl命令改变baseline的标签状态。

提升等级

baseline可以标记一个提升等级来显示baseline的质量。一个工程VOB将被分给一系列的排序好的提升等级,其中之一被指定了默认的提升等级,即它会被分给新的baseline在其建立之后。参考setplevel获取更多的信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值