如何使用cleartool为每个组件找到root [文件夹]?

时间:2012-01-07 12:52:03

标签: clearcase cleartool clearcase-ucm

如何找到与组件关联的根文件夹?

我可以通过项目浏览器手动找到它 - >组分 - >特性

如何使用cleartool命令执行此操作。我需要它,因为我需要创建配置规范,可以在基本的clearcase视图中应用并查看UCM视图内容。

1 个答案:

答案 0 :(得分:1)

查看options of "Format strings for command output" (fmt_ccase)

 cleartool descr -fmt "%[root_dir]p" component:aComponent@\aPVob

您可以通过这种方式访问​​根目录(通常\aVob代表“vob组件”或“\aVob\aRootDir”代表VOB中的组件。


从那里,为了管理对非UCM 视图中UCM组件的特定基线的访问,您可以在perl脚本中遵循类似于“Merging from a Project to a Non-UCM Branch”的方法(完成合并) ,但你可以调整它,以便为所述非UCM视图构建配置规范):

以下脚本适用于使用推荐基线的项目,并以“%[root_dir]p”为例。 如果您不使用推荐的基线,您只需列出给定流的所有组件:
cleartool descr -fmt "%[components]CXp" stream:aStream@\aPVob

print("######## Getting recommended baselines for project 
'$project'\n");
my @recbls = split(' ', ‘cleartool lsproject -fmt "%[rec_bls]p" 
$project‘);

foreach $bl (@recbls) {

    my $comp = ‘cleartool lsbl -fmt "%[component]p" $bl‘;
    my $vob = ‘cleartool lscomp -fmt "%[root_dir]p" $comp‘;

    #... build your config spec there
}
# call cleartool setsc there

然后,您将生成(并应用于配置规范)与您的其他问题“Clearcase config spec behaves odd when using setcs command”类似的文件。


OP使用Powershell报告了这种方法的工作原理:
(他最初在IBM网站上复制了我的示例问题,其中连字符减去'-'被非ASCII减''代替:'- vs. –: -–':见“What's the toughest bug you ever found and fixed?”):

$project="MyComponents@\My_PVOB" 
$pvob="@\My_PVOB" 
$Baselines=(cleartool lsproject -fmt "%[rec_bls]p" $project).split() 
foreach ($bl in $Baselines) { 
  $comp=cleartool lsbl -fmt "%[component]p" $bl"$pvob" 
  $vob = cleartool lscomp -fmt "%[root_dir]p" $comp"$pvob" 
}