我如何与Perl的ClearCase交互?

use*_*374 2 perl clearcase

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

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

请帮助我...

Von*_*onC 5

基本上,ClearCase Perl脚本基于系统和cleartool命令的解析输出.

这些脚本基于一个像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);
Run Code Online (Sandbox Code Playgroud)

例如.

因此,一旦拥有了基本的Perl结构,您需要的只是基于fmt_ccase指令分析的正确的cleartool命令.

1 /该基线内相关的所有活动(列标题"活动")

 ct descr -fmt "%[activities]CXp" baseline:aBaseline.xyz@\ideapvob
Run Code Online (Sandbox Code Playgroud)

这将为您提供活动列表(以' ,' 分隔).

对于每项活动:

2 /所有者的ID(列标题 - 所有者)

 ct descr -fmt "%u" activity:anActivityName@\ideapvob
Run Code Online (Sandbox Code Playgroud)

3 /特定活动中关联的所有元素.(列标题 - "元素详细信息")

不确定:活动可以列出他们的版本(参见/ 4),而不是他们的元素

4 /对于每个元素,关联的版本(列标题 - "版本")

对于给定的活动:

 ct descr -fmt "%[versions]CQp\n"  activity:anActivityName@\ideapvob
Run Code Online (Sandbox Code Playgroud)

5 /每个元素的代码行总数,添加的代码行总数,删除的代码行总数,代码行总数改变..(列标题"代码行数", "添加了代码行","删除了代码行"和"代码行更改")

这可能相当长,但对于每个版本,您可以计算先前版本的扩展路径并进行差异.

我建议使用动态视图,因为您可以从那里访问任何版本的文件(而不是快照视图).