我如何与Perl的ClearCase交互?

时间:2010-02-16 13:33:28

标签: perl clearcase

我的项目需要使用excel表中的Perl脚本从ClearCase数据中提取一些东西,这些是 -
通过给出两个特定的时间线或两个基线。

  1. 该基线内的所有相关活动(列标题“活动”)
  2. 所有者的ID(列标题 - 所有者)
  3. 特定活动中关联的所有元素。 (列标题 - “元素详细信息”)
  4. 对于每个元素,关联的版本(列标题 - “版本”)
  5. 对于每个元素,代码行总数,添加的代码行总数,删除的代码行总数,代码行总数发生变化..(列标题“代码行数” ,“添加的代码行”,“删除的代码行”和“代码行更改”)
  6. 请帮助我...

3 个答案:

答案 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子句中的双引号才能使它工作。

相关问题