2

rcleartool在 Windows 机器上使用 8.0.0.6。有没有办法使用rcleartool非交互模式?

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

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

4

2 回答 2

3

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提到增强功能已于 2013 年 6 月 14 日交付 RFE(增强请求):

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

会话缓存rcleartool在 8.0.0.3 中交付

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


ClearCase 7.x

您可以尝试按照 IBM 文章“如何在不输入用户名、密码和服务器 URL 的情况下运行 rcleartool

它建议修改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.batrcleartool在 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

进行上述更改后,无需每次输入用户名、密码和服务器 URL 即可使用 rcleartool。

例如,

rcleartool lsvob
rcleartool lsview

请注意,仍然需要rcleartool直接运行(而不是在rcleartool提示符下),例如:

  • 能够使用 > 运算符捕获结果。
  • 能够在批处理文件中运行。
于 2013-08-29T08:47:40.900 回答
2

The approach for Clear Case 7.1.X doesn't work for many cases, for instance on a simple CHECKOUT operation or just launch the rcleartool CLI.

That's because the server/login options should come before the others parameters. For instance: rcleartool co -server XXX -login me -password 1234 fileToCheckOut.txt

So what I suggest is to improve a bit the correction mentioned above to separate the first input parameter given to the batch, representing the Clear Case command, from the rest, the parameters for the given command.

So it looks more or less like this in batch :

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%

Ugly as the devil himself, but it works for most cases. You can perform simple tasks like you could before, plus Check-outs/ins and similiar.

What you CAN'T do still is to launch the rcleartool CLI and use the help command. It requests me a password, and even if I enter, it fails.

edit: comparison on shift snipet was failing when receiving parameters with quotes and spaces in it.

于 2014-08-14T07:12:28.677 回答