Как я могу использовать неинтерактивный режим 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. Он запрашивает у меня пароль, и даже если я вхожу, он терпит неудачу.
редактирование: сравнение по фрагменту сдвига не удавалось при получении параметров с кавычками и пробелами в нем.