我在提交此问题之前阅读了相关问题,但无法找到与我的问题相同的确切问题。
我正在尝试在Windows机器上设置一些自动化。我有ant目标进行更新,我使用eclipse作为我的java开发编辑器。 Windows框中安装了 svn客户端(TortoiseSVN),并且我用于从我的存储库中获取新的结帐一旦项目签出,我执行了蚂蚁目标。结果如下。
C:\svncheckout\Automation>ant update-svn Buildfile: build.xml update-svn: [svn] started ... [svn] svn: 'C:\svncheckout\Automation' is not a working copy [svn] svn: Cannot read from 'C:\svncheckout\Automation\.svn\format': C:\svncheck out\Automation\.svn\format (The system cannot find the file specified) [svn] svn: 'C:\svncheckout\Automation' is not a working copy [svn] svn: Cannot read from 'C:\svncheckout\Automation\.svn\format': C:\svncheck out\Automation\.svn\format (The system cannot find the file specified) [svn] failed ! BUILD FAILED C:\svncheckout\Automation\build.xml:198: Cannot update dir C:\svncheckout\Automation
这是我的蚂蚁目标,在阅读了一些论坛后,我发现最好明确告诉目标与svnkit
一起运行我已经删除了实际的用户名和密码。
<!-- target to update working copy -->
<target name="update-svn">
<svn svnkit="true" javahl="false" username="guest" password="guest">
<update dir= "${checkout}/Automation" revision="HEAD"/>
</svn>
</target>
提前谢谢你。
答案 0 :(得分:2)
svn和svnant之间可能存在兼容性问题。 例如
svn --version svn,版本1.6.15(r1038135) 编辑于2010年11月24日,15:10:19
TortoiseSVN 1.6.12,Build 20536 - 32 Bit,2010/11/24 20:59:01 颠覆1.6.15, apr 1.3.8 apr-utils 1.3.9 霓虹灯0.29.5 OpenSSL 0.9.8p 2010年11月16日 zlib 1.2.3
Apache的蚂蚁 1.7.0 \ bin \ ant -version Apache Ant版本1.7.0于2006年12月13日编译
结合svnant-1.2.1.zip会产生“工作副本”错误并且缺少.svn / format文件 如果svnant-1.3.1.zip这个问题没有问题。
答案 1 :(得分:1)
错误消息说明了一切,真的。您的C:\svncheckout\Automation
不是工作副本。要验证这一点,您可以检查C:\svncheckout\Automation\.svn\format
是否存在(并且可能不存在。)
你签到哪个文件夹?
您是否执行export
操作而不是checkout
?或者.svn
文件夹以某种方式被删除了?
是否可以检出其他文件夹(不是C:\svncheckout\Automation
)?
可能是存储库中不存在Automation
文件夹吗? (您可以查看TortoiseSVN的Repo-Browser。)
答案 2 :(得分:1)
我遇到了同样的问题。在我的情况下,只需切换到javahl即可解决。
<svn svnkit="false" javahl="true">
<update dir="${source.dir}" revision="HEAD" />
</svn>
编辑:我认为一般问题的根源在于使用较新版本的subversion创建的工作空间,与在ant中使用的库相比,在您的情况下为SVNKit。我想在我的系统上javahl存在于最近的版本中,而SVNKit不存在 - 所以切换到javahl解决了我的问题。您可以通过更新ant skript使用的SVNKit库来解决您的问题。 post at tigris也指向了这个方向。
答案 3 :(得分:0)
之前的回答是要切换到javahl,但它创建了很多问题,所以根据我的经验,最好的解决方案是关闭javahl。
enter code here
<!-- target to update working copy -->
<target name="update-svn">
<svn svnkit="true" javahl="false" username="username" password="password">
<cleanup dir="${checkout}/myframework"/>
<update dir= "${checkout}/myframework" revision="HEAD"/>
</svn>
</target>
我添加了清理只是svn cleanup因为我的ant脚本正在运行以处理hudson中的自动化过程。因此,为了避免任何清理过程,我决定添加它。