我正在使用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:
它像这样挂起。
答案 0 :(得分:1)
CVS Ant任务只是简单地对CVS命令进行系统调用,因此使用CVS任务实际上没有优势,而不是简单地自己调用CVS。
我只有CVS任务的问题,所以我只是使用<exec>
任务来处理CVS检查,提交等。最后,结束,通过{{调用CVS 1}}任务不再低效,不再需要打字,而且也很容易理解。
嗨,谢谢你的回复。但是只在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
添加注册表项来执行此操作。