我正在尝试运行以下代码,但在#error 1
命令获得startview
,在#error 2
命令中获得desc
。
use Win32::OLE;
$ct = Win32::OLE->new('ClearCase.ClearTool') or die "Could not create ClearTool object\n";
$view = "ccadm01_UARK_DEV";
$output = $ct->CmdExec("pwv") or die("Cleartool returned error: ", Win32::OLE->LastError(), "\n");
print ("pwv \$output = $output\n");
# error 1 : cleartool return error 0
$output = $ct->CmdExec("startview ccadm01_UARK_DEV") or die("Cleartool returned error: ", Win32::OLE->LastError(), "\n");
$CWD = $view_dir;
print( "Current directory: $CWD\n");
# error 2: No view context available
$output = $ct->CmdExec("describe -fmt \"%[versions]Cp\" activity:USR0200004985\@\\Unix_PVOB") or die("Cleartool returned error: ", Win32::OLE->LastError(), "\n");
print ("desc \$output = $output\n");
对于#error 1,我在DOS上尝试了相同的命令,它可以工作。
答案 0 :(得分:0)
您需要确保$view
是有效的cleartool startview
动态视图标记才能生效。
(确保not use cleartool setview
, as it spawns a subshell)
此外,如果它返回错误0,您可以认为它已经起作用:CAL可能返回“错误”,但状态0应该意味着该命令已被执行。
但是,与0不同的错误意味着出现了问题。
您需要cd
进入该视图(/view/<viewTag>
或m:\<viewTag>
)才能使cleartool descr
生效。
那个,在错误的文件夹中执行,应该失败,因此“错误2”。
OP Jirong Hu点in the comments到Using Perl with Rational ClearCase Automation Library (CAL)和this script as an example。