SVN-ANT错误 - “不是工作副本”

时间:2009-12-23 16:39:02

标签: svn ant svnkit svnant

我在提交此问题之前阅读了相关问题,但无法找到与我的问题相同的确切问题。

我正在尝试在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>

提前谢谢你。

4 个答案:

答案 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中的自动化过程。因此,为了避免任何清理过程,我决定添加它。