我的项目需要使用excel表中的Perl脚本从ClearCase数据中提取一些东西,这些是 -
通过给出两个特定的时间线或两个基线。
请帮助我...
答案 0 :(得分:5)
基本上,ClearCase Perl脚本基于系统和cleartool命令的解析输出。
脚本基于像 package CCCmd 这样的cleartool运行cmd,并使用如下:
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 /所有者的ID(列标题 - 所有者)
ct descr -fmt "%u" activity:anActivityName@\ideapvob
3 /特定活动中关联的所有元素。 (列标题 - “元素详细信息”)
不确定:活动可以列出他们的版本(参见/ 4),而不是他们的元素
4 /对于每个元素,关联的版本(列标题 - “版本”)
对于特定活动:
ct descr -fmt "%[versions]CQp\n" activity:anActivityName@\ideapvob
5 /每个元素的代码行总数,添加的代码行总数,删除的代码行总数,代码行总数发生变化..(列标题“行数代码“,”代码行添加“,”代码行删除“&”代码行改变了“)
这可能相当长,但对于每个版本,您可以计算先前版本的扩展路径并进行差异。
我建议使用动态视图,因为您可以从那里访问任何版本的文件(而不是快照视图)。
答案 1 :(得分:2)
此外,如果您需要使用带有Clearcase的perl,请查看CPAN模块ClearCase::CtCmd。我建议使用这个perl模块来调用clearcase命令。
答案 2 :(得分:0)
对于CCCmd包,我必须删除RunCmd和RunCmdNoError子句中的双引号才能使它工作。