2009-12-23 141 views
1

在提交此问题之前,我阅读了相关问题,但无法找到与我的问题相同的确切问题。SVN-ANT错误 - “不是工作副本”

我想在窗口框上设置一些自动化。我有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 

这里是我的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> 

谢谢您提前。

回答

1

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

您签出了哪个文件夹?

难道是你执行了export而不是checkout?或者.svn文件夹被删除了?

难道是你签出到不同的文件夹(而不是C:\svncheckout\Automation)?

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

1

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

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

编辑:我觉得一般的问题,根源在于工作空间都与相比蚂蚁所使用的图书馆,你的情况SVNKit颠覆的较新版本创建的。我想我的系统javahl是在最近的版本中出现,而SVNKit不是 - 所以切换到javahl解决了我的问题。您可以通过更新您的蚂蚁skript使用的SVNKit库来解决您的问题。这post at tigris也指向这个方向。

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清理,因为我的蚂蚁脚本运行照顾自动化过程在哈德逊。所以为了避免任何清理过程,我决定补充一点。

2

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

SVN --version SVN,版本1.6.15(r1038135) 编译2010年11月24日,15点10分19秒

TortoiseSVN的1.6。12,构建20536 - 32位,20点59分01秒2010/11/24颠覆 1.6.15, 四月1.3.8 APR-utils的1.3.9 氖0.29.5 OpenSSL的0.9.8p 16 2010年11月 zlib的1.2.3

Apache的蚂蚁 1.7.0 \ BIN \蚂蚁-version Apache Ant的1.7.0版本编译于二零零六年十二月十三日

与svnant-1.2.1.zip结合就会生成错误与“工作副本”和缺少.svn /格式文件 如果svnant-1.3.1.zip的问题没有问题。

+0

upvote。我强烈怀疑这是(我)的问题。 SVN 1.7从每个子文件夹的'.svn'文件夹到结账根目录下的一个'.svn'文件。我的NAnt脚本在我们的(Jenkins)构建服务器上运行良好,其中“子根文件夹”是单独的签出。在我的本地机器上,我在我们的“根”下有一个结帐,脚本失败。 – radarbob 2016-03-30 19:14:52