1

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

我正在尝试在 Windows 框中设置一些自动化。我有 ant 目标要更新,我使用 eclipse 作为我的 java 开发编辑器。Windows 盒子安装了svn 客户端(TortoiseSVN) ,一旦项目被签出, 我就使用它从我的存储库中获取新的签出,我执行了 ant 目标。结果如下。

    C:\svncheckout\Automation>ant update-svn
    构建文件:build.xml

    更新-svn:
          [svn] 开始...
          [svn] svn: 'C:\svncheckout\Automation' 不是工作副本
          [svn] svn:无法从 'C:\svncheckout\Automation\.svn\format' 读取:C:\svncheck
    out\Automation\.svn\format(系统找不到指定的文件)
          [svn] svn: 'C:\svncheckout\Automation' 不是工作副本
          [svn] svn:无法从 'C:\svncheckout\Automation\.svn\format' 读取:C:\svncheck
    out\Automation\.svn\format(系统找不到指定的文件)
          [svn] 失败!

    构建失败
    C:\svncheckout\Automation\build.xml:198: 无法更新目录 C:\svncheckout\Automation

这是我的 ant 目标,在阅读了一些论坛后,我发现最好明确告诉目标运行,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

4 回答 4

2

svn 和 svnant 之间可能存在兼容性问题。例如

svn --version svn,版本 1.6.15 (r1038135) 编译于 2010 年 11 月 24 日,15:10:19

TortoiseSVN 1.6.12,内部版本 20536 - 32 位,2010/11/24 20:59:01 Subversion 1.6.15,apr 1.3.8 apr-utils 1.3.9 neon 0.29.5 OpenSSL 0.9.8p 2010 年 11 月 16 日 zlib 1.2。 3

apache-ant 1.7.0\bin\ant -version 2006 年 12 月 13 日编译的 Apache Ant 1.7.0 版

与 svnant-1.2.1.zip 结合使用会产生“工作副本”错误和缺少 .svn/format 文件 如果 svnant-1.3.1.zip 出现问题,则没有问题。

于 2012-04-10T13:55:30.520 回答
1

我有同样的问题。在我的情况下,它可以通过简单地切换到 javahl 来解决。

<svn svnkit="false" javahl="true">
    <update dir="${source.dir}" revision="HEAD" />
</svn>        

编辑:我认为一般问题的根源在于与 ant 中使用的库相比,使用更新版本的 subversion 创建的工作区,在你的情况下是 SVNKit。我想在我的系统上 javahl 存在于足够近的版本中,而 SVNKit 没有 - 所以切换到 javahl 解决了我的问题。您可能可以通过更新 ant 脚本使用的 SVNKit 库来解决您的问题。底格里斯的这篇文章也指向了这个方向。

于 2010-01-13T12:31:29.360 回答
1

错误消息说明了一切,真的。你C:\svncheckout\Automation的不是工作副本。要验证这一点,您可以检查是否C:\svncheckout\Automation\.svn\format存在(它可能不存在。)

您签出到哪个文件夹?

可能是您执行了export操作而不是checkout?或者该.svn文件夹以某种方式被删除?

可能是您签出到不同的文件夹(不是C:\svncheckout\Automation)?

可能是Automation存储库中不存在该文件夹吗?(你可以查看 TortoiseSVN 的 Repo-Browser。)

于 2009-12-25T14:07:34.943 回答
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 脚本正在运行以处理哈德森的自动化过程。所以为了避免任何清理过程,我决定添加它。

于 2010-01-13T18:12:01.333 回答