如何使用CCRC的非交互模式?

时间:2013-08-29 08:39:39

标签: clearcase-remote-client

我在windows机器中使用rcleartool 8.0.0.6。有没有办法使用rcleartool非交互模式?

例如,如果我输入:rcleartool lsview -s,客户端会要求我以交互模式输入服务器URL,用户名/密码。

无论如何使用rcleartool lsview -s -username [username] -pass [password] -server [server]
我想在我的java代码中使用该命令,所以非交互模式应该更好吗? 有什么建议吗?

2 个答案:

答案 0 :(得分:2)

ClearTeam 8.x

如“The ClearCase 8.x remote client command-line interface (rcleartool)”中所述:

  

rcleartool是IBM Rational ClearCase远程客户端(CCRC)的命令行界面。
  此接口首先作为单独下载发布,以便与V7.1.2.x及更高版本兼容,在V8.0.0.3中提供了本文档中描述的更改。

rcleartool login不是caching credentials before (7.x) 它应该现在缓存这些凭证。

CR 3508提到增强已于2013年6月14日发布RFE(增强请求):

  

在CCRC CLI单行模式下,您应该只指定一次登录凭据。

rcleartool的会话缓存已在8.0.0.3

中提供

这意味着在一个rcleartool login -lname xxx -server xxx -password xxx之后,所有其他rcleartool命令不再需要登录/密码。


ClearCase 7.x

您可以尝试按照IBM文章“How to run rcleartool without entering username, password and server URL every time

进行操作

建议修改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(UNIX下的rcleartool),然后按如下方式修改该文件:

     

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提示符下),例如:

     
      
  • 能够使用>捕获结果操作者。
  •   
  • 能够在批处理文件中运行。
  •   

答案 1 :(得分:2)

Clear Case 7.1.X 的方法在许多情况下都不起作用,例如在简单的CHECKOUT操作上或只是启动 rcleartool CLI 。 / p>

那是因为服务器/登录选项应该在其他参数之前。例如: rcleartool co <​​/ strong> -server XXX -login me -password 1234 fileToCheckOut.txt

所以我建议改进一下上面提到的修正,将代表 Clear Case 命令的批处理的第一个输入参数与其余部分分开,给定命令的参数

所以它看起来或多或少是这样的:

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%

丑陋的魔鬼本人,但大多数情况下 。 您可以像以前一样执行简单的任务,还可以执行Check-outs / ins和类似的操作。

CAN&#39; 仍然要启动rcleartool CLI并使用 help 命令。 它向我索要密码,即使我输入密码也失败了。

在接收带引号和空格的参数时,

编辑对shift snipet的比较失败。