基本上,ClearCase Perl 脚本基于系统和 cleartool 命令的解析输出。
脚本基于 cleartool 运行 cmd,如 package CCCmd,使用如下:
use strict;
use Config;
require "path/to/CCCmd.pm";
sub Main
{
my $hostname = CCCmd::RunCmd('hostname');
chomp $hostname;
my $lsview = CCCmd::ClearToolNoError("lsview -l -pro -host $hostname");
return 1;
}
Main() || exit(1);
exit(0);
例如。
因此,一旦您掌握了基本的 Perl 结构,您所需要的只是基于 fmt_ccase 指令的正确 cleartool 命令进行分析。
1/ 该基线内关联的所有活动(列标题“活动”)
ct descr -fmt "%[activities]CXp" baseline:aBaseline.xyz@\ideapvob
这将为您提供活动列表(以“,”分隔)。
对于每个活动:
2/ Owner的id(列头-Owner)
ct descr -fmt "%u" activity:anActivityName@\ideapvob
3/ 在特定活动中关联的所有元素。 (列标题-“元素详情”)
不确定:activity 可以列出它们的版本(见 /4),而不是简单地列出它们的元素
4/ 为每个元素关联的版本(列标题-“版本”)
对于给定的活动:
ct descr -fmt "%[versions]CQp\n" activity:anActivityName@\ideapvob
5/每个元素的代码总行数,添加的代码总行数,删除的代码总行数,更改的代码总行数..(列标题“行数”代码","添加的代码行","删除的代码行" & "更改的代码行")
这可能相当长,但对于每个版本,您可以计算前一个版本的扩展路径并进行比较。
我建议对所有这些都使用动态视图,因为您可以从那里访问文件的任何版本(而不是快照视图)。