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) и этот сценарий в качестве примера.