1

我正在尝试运行以下代码,但是得到#error 1startview命令和命令 #error 2desc

    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 的相同命令,它可以工作。

4

1 回答 1

0

您需要确保您$view是有效的动态视图标签cleartool startview才能工作。
(确保不要使用cleartool setview,因为它会产生一个子shell

此外,如果它返回错误 0,您可以假设它已经工作:CAL 可能会返回“错误”,但状态 0 应该意味着命令已执行。

但是,与 0 不同的错误意味着出现问题。

您需要cd进入该视图(/view/<viewTag>m:\<viewTag>)才能使 acleartool descr工作。
在错误文件夹中执行的那个应该会失败,因此是“错误 2”。


OP Jirong Hu在评论中指出将Perl 与 Rational ClearCase 自动化库 (CAL)此脚本作为示例一起使用。

于 2016-02-06T05:47:38.853 回答