Как я могу использовать неинтерактивный режим CCRC?

Я использую rcleartool 8.0.0.6 в windows машине. Есть ли способ использовать rcleartool неинтерактивный режим?

Например, если я наберу: rcleartool lsview -s, клиент попросит меня ввести URL-адрес сервера, имя пользователя / пароль в интерактивном режиме.

Есть ли в любом случае использовать rcleartool lsview -s -username [username] -pass [password] -server [server]?
Я хочу использовать эту команду в своем коде Java, поэтому неинтерактивный режим должен быть лучше?
Какие-либо предложения?

2 ответа

Решение

ClearTeam 8.x

Как упомянуто в " Интерфейсе командной строки удаленного клиента ClearCase 8.x ( rcleartool ) ":

rcleartool интерфейс командной строки для удаленного клиента IBM Rational ClearCase (CCRC)
Этот интерфейс, впервые выпущенный как отдельная загрузка для совместимости с V7.1.2.x и более поздними выпусками, поставляется в V8.0.0.3 с изменениями, описанными в этом документе.

rcleartool login не было кэширования учетных данных раньше (7.x).
Это должно кэшировать эти учетные данные сейчас.

CR 3508 упоминает, что усовершенствование было доставлено 14 июня 2013 года на RFE (Запрос на улучшение):

В однострочном режиме интерфейса командной строки CCRC вы должны указывать свои учетные данные только один раз.

Кеширование сессии для rcleartool был доставлен в 8.0.0.3

Это значит после одного rcleartool login -lname xxx -server xxx -password xxx, все остальные rcleartool командам больше не нужны логин / пароль.


ClearCase 7.x

Вы можете попробовать следовать статье IBM " Как запускать rcleartool без ввода имени пользователя, пароля и URL-адреса сервера каждый раз "

Он предлагает изменить rcleartool.bat скрипт.

причина

Обычно, когда один бежит rcleartool (не под rcleartool подскажите), ему нужно каждый раз вводить имя пользователя, пароль и URL сервера.

Например:

rcleartool lsvob -username myusername -password mypassword -server  http://myserver:12080/TeamWeb/services/Team

rcleartool lsview -username myusername -password mypassword -server  http://myserver:12080/TeamWeb/services/Team

Ответ

Вы можете сделать резервную копию оригинала rcleartool.bat (rcleartool в UNIX), а затем измените этот файл следующим образом:

Найдите следующую строку в rcleartool.bat

"%_JAVACMD%" -Djava.util.logging.config.file="%CCRCCLI%/logging.properties" -cp "%CM_API_DIR%\stpwvcm.jar";"%CM_API_DIR%\stpcmmn.jar";"%CM_API_DIR%\stpcc.jar";"%CM_API_DIR%\remote_core.jar";"%CM_API_DIR%\commons-httpclient-3.0.jar";"%CM_API_DIR%\commons-codec-1.3.jar";"%CCRCCLI%\commons-cli-1.1.jar";"%CM_API_DIR%\icu4j-3_8.jar";"%CM_API_DIR%\commons-logging-1.0.4.jar";"%CCRCCLI%\rcleartool.jar" com.ibm.rational.ccrc.cli.command.ClearWan %*
Add the username, password and server URL at the end

"%_JAVACMD%" -Djava.util.logging.config.file="%CCRCCLI%/logging.properties" -cp "%CM_API_DIR%\stpwvcm.jar";"%CM_API_DIR%\stpcmmn.jar";"%CM_API_DIR%\stpcc.jar";"%CM_API_DIR%\remote_core.jar";"%CM_API_DIR%\commons-httpclient-3.0.jar";"%CM_API_DIR%\commons-codec-1.3.jar";"%CCRCCLI%\commons-cli-1.1.jar";"%CM_API_DIR%\icu4j-3_8.jar";"%CM_API_DIR%\commons-logging-1.0.4.jar";"%CCRCCLI%\rcleartool.jar" com.ibm.rational.ccrc.cli.command.ClearWan %* -username myusername -password mypassword -server  http://myserver:12080/TeamWeb/services/Team

После внесения вышеуказанных изменений rcleartool можно использовать без ввода имени пользователя, пароля и URL-адреса сервера каждый раз.

Например,

rcleartool lsvob
rcleartool lsview

Обратите внимание, что по-прежнему необходимо запустить rcleartool напрямую (не в rcleartool подскажите) такие как:

  • Возможность получить результат с помощью> оператора.
  • Возможность запуска в командном файле.

Подход для Clear Case 7.1.X не работает во многих случаях, например, для простой операции CHECKOUT или просто для запуска CLI rcleartool.

Это связано с тем, что параметры сервера / входа в систему должны предшествовать другим параметрам. Например: rcleartool co- server XXX -login me -password 1234 fileToCheckOut.txt

Поэтому я предлагаю немного улучшить упомянутую выше поправку, чтобы отделить первый входной параметр, заданный пакету, представляющий команду " Очистить регистр", от остальных параметров для данной команды.

Так что это выглядит примерно так в партии:

set LOGIN=-server XXX -login me -password 1234
set CMD=%1
set PARAMS=

shift
:loop1
if [%1]==[] goto after_loop
set PARAMS=%PARAMS% %1
shift
goto loop1

:after_loop

"%_JAVACMD%" -Djava.util.logging.config.file="%CCRCCLI%/logging.properties" -cp "%CM_API_DIR%\stpwvcm.jar";"%CM_API_DIR%\stpcmmn.jar";"%CM_API_DIR%\stpcc.jar";"%CM_API_DIR%\remote_core.jar";"%CM_API_DIR%\commons-httpclient-3.0.jar";"%CM_API_DIR%\commons-codec-1.3.jar";"%CCRCCLI%\commons-cli-1.1.jar";"%CM_API_DIR%\icu4j-3_8.jar";"%CM_API_DIR%\commons-logging-1.0.4.jar";"%CCRCCLI%\rcleartool.jar" com.ibm.rational.ccrc.cli.command.ClearWan %CMD% %LOGIN% %PARAMS%

Уродлив как сам дьявол, но в большинстве случаев это работает. Вы можете выполнять простые задачи, как раньше, а также Проверки / вводы и тому подобное.

Что вы еще НЕ МОЖЕТЕ сделать, так это запустить CLI rcleartool и использовать команду help. Он запрашивает у меня пароль, и даже если я вхожу, он терпит неудачу.

редактирование: сравнение по фрагменту сдвига не удавалось при получении параметров с кавычками и пробелами в нем.

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