Clearcase 如何使用cleartool查找每个组件的根目录[文件夹]?

Clearcase 如何使用cleartool查找每个组件的根目录[文件夹]?,clearcase,cleartool,clearcase-ucm,Clearcase,Cleartool,Clearcase Ucm,如何查找与组件关联的根文件夹 我可以通过project explorer->Components->properties手动找到它 如何使用cleartool命令执行此操作。我需要它,因为我需要创建可应用于基本clearcase视图和查看UCM视图内容的配置规范。请查看: 您可以通过这种方式进入根目录(对于“vob组件”通常为\aVob,对于vob中的组件通常为“\aVob\aRootDir) 从这里开始,为了管理对非UCM视图中UCM组件的特定基线的访问,您可以遵循类似于perl脚本中的“”

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

我可以通过project explorer->Components->properties手动找到它

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

请查看:

您可以通过这种方式进入根目录(对于“vob组件”通常为
\aVob
,对于vob中的组件通常为“
\aVob\aRootDir


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

下面的脚本用于使用推荐基线的项目,并作为使用“
%[root\u dir]p
”的示例提供
如果不使用推荐的基线,只需列出给定流的所有组件:
cleartool descr-fmt“%[components]CXp”流: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
然后,您将生成(并应用于配置规范)一个类似于您的另一个问题“”的文件


OP报告使用Powershell使此方法起作用:
(他最初对我从IBM网站复制的示例有疑问,在IBM网站上,连字符减号“
-
”被非ASCII减号“
-
”:,“
-vs.--
”:参见“”):


严格使用;my$project=“Components@\my\u PVOB”;我的$bl;打印(“获取项目“$project”的建议基线”);my@recbls=split(“”,
cleartool lsproject-fmt“%[rec_bls]p”$project
);对于每个$bl(@recbls){my$comp=
cleartool lsbl–fmt“%[component]p”$bl
;my$vob=
cleartool lscomp–fmt“%[root_dir]p”$comp
;#在那里构建配置规范}在那里调用cleartool setsc退出0;“它失败为”cleartool:Error:无法确定路径名“My_PVOB”的VOB“。我尝试了2个小时来解决,但失败了。我遗漏了什么?@Samselvaprabu首先你需要知道它在哪一行失败(
lsbl
lscomp
)。然后确保(询问不会有任何伤害)您拥有正确的PVob名称/路径:
\MyPVob
适用于Windows,
/vobs/MyPVob
适用于Unix(当然,用实际PVob的名称替换“
MyPVob
”)。最后,简化。将脚本设置为一行程序,尝试将
lsbl
lscomp
仅设置为一个对象,然后查看此操作是否有效。调试完成后,初始脚本和更完整脚本的其余部分应能正常工作。@Samselvaprabu:如果脚本中的某些
cleartool
命令仍有问题,请将complete设置为te
cleartool
命令及其在这些注释中的完整输出:我将调试它们。谢谢,伙计。我认为您的内容是从某些pdf或其他格式复制的。这会带来一些utf格式问题。此外,windows中的PVOB名称需要@\PVOB。“$project=“MyComponents@\My\u PVOB”$PVOB=“@\My\u PVOB”$Baselines=(cleartool lsproject-fmt“%[rec_bls]p”$project).split()foreach($Baselines中的bl){$comp=cleartool lsbl-fmt“%[component]p“$bl”$pvob”%$vob=cleartool lscomp-fmt”%[root_dir]p“$comp”$pvob”}(我使用了powershell)是的。感谢老兄在你的回答中多做了一点努力。(你能编辑你的答案吗?这样读你答案的人就不会面临我面临的格式问题
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
$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" 
}