ClearCase.ClearTool返回无视图上下文可用错误

时间:2016-02-06 01:44:02

标签: hook clearcase clearquest cal

我正在尝试运行以下代码,但在#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上尝试了相同的命令,它可以工作。

1 个答案:

答案 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 Huin the commentsUsing Perl with Rational ClearCase Automation Library (CAL)this script as an example