CVS结帐使用ant挂起

时间:2012-01-03 12:10:51

标签: ant cvs

我正在使用cvs中的ant checkout文件夹:

<cvspass cvsroot=":ext:breddy@cvs.oatsystems.com:/usr/local/cvs" password="passwd"/>

<cvs cvsRSH="ssh" cvsRoot=":ext:breddy@cvs.oatsystems.com:/usr/local/cvs" package="atf/home" dest="." passfile=".cvspass">

输出就像这样并挂起。我等了半个小时。

Buildfile: build.xml

test:

checkout:

它像这样挂起。

1 个答案:

答案 0 :(得分:1)

CVS Ant任务只是简单地对CVS命令进行系统调用,因此使用CVS任务实际上没有优势,而不是简单地自己调用CVS。

我只有CVS任务的问题,所以我只是使用<exec>任务来处理CVS检查,提交等。最后,结束,通过{{调用CVS 1}}任务不再低效,不再需要打字,而且也很容易理解。


对bhasker的反应

  

嗨,谢谢你的回复。但是只在pserver中支持在thr root中提供密码。但我正在使用分机。它给出了以下错误cvs checkout:CVSROOT密码规范仅对cvs checkout:pserver连接方法有效。 [结账中止] - bhasker

我已经下载了Ant源代码并查看了Java中的cvspass任务。这很有趣。

CVS密码以加密格式存储,但它不是一种非常安全的算法。许多程序员都知道它,并且有各种各样的程序可以生成并破解密码。

<exec>任务正在使用您提供的密码,使用该算法,然后将其添加到$ HOME目录中的<cvspass>文件中。事实上,如果您使用的是Windows并使用CVSNT,则无法使用,甚至可能会挂起。 (也许这是你的问题?)。

我有一个名为scramble.pl的程序,可以输入密码然后加密。获取该结果并将其添加到.cvspass文件中,您将模拟.cvspass任务正在执行的操作。 <cvspass>的格式非常简单:

.cvspass

CVSNT将这些条目写入Windows注册表。

您可以将\1 <cvsRoot> <encryptedPasswd> 添加到项目中。通过scramble.pl任务运行该任务,然后使用<exec>任务将该条目附加到<echo>文件。如果您使用的是Windows并使用CVSNT,则可以使用.cvspass添加注册表项来执行此操作。