ClearCase.ClearTool возвращает ошибку "Нет контекста представления"

Я пытаюсь запустить следующий код, но получил #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 ответ

Вы должны убедиться, что ваш $view является допустимым тегом динамического просмотра для cleartool startviewработать.
(убедитесь, что не используетеcleartool setview как порождает подоболочку)

Также, если она возвращает ошибку 0, вы можете предположить, что она сработала: CAL может вернуть "ошибку", но статус 0 должен означать, что команда была выполнена.

Ошибка, отличная от 0, означает, что что-то пошло не так.

А тебе надо cd в эту точку зрения (/view/<viewTag> или же m:\<viewTag>) для cleartool descrработать.
Предполагается, что этот файл, выполненный в неправильной папке, потерпит неудачу, следовательно, "ошибка 2".


Jirong Hu в комментариях указывает на использование Perl с Rational ClearCase Automation Library (CAL) и этот сценарий в качестве примера.

Другие вопросы по тегам