Error SVN-ANT – "no es una copy de trabajo"

Leí una pregunta relacionada antes de enviar esta pregunta, pero no pude encontrar la pregunta exacta que tiene el mismo problema que la mía.

Estoy intentando configurar algo de automation en un cuadro de Windows. Tengo un objective de ant para hacer la actualización y he usado eclipse como mi editor de desarrollo de Java. Windows box tiene el cliente svn (TortoiseSVN) instalado y lo usé para get un checkout nuevo de mi repository una vez que se ejecutó el proyecto, ejecuté el objective ant. El resultado fue siguiente.

     C: \ svncheckout \ Automation> ant update-svn
     Buildfile: build.xml

     actualización-svn:
           [svn] comenzó ...
           [svn] svn: 'C: \ svncheckout \ Automation' no es una copy de trabajo
           [svn] svn: No se puede leer desde 'C: \ svncheckout \ Automation \ .svn \ format': C: \ svncheck
     out \ Automation \ .svn \ format (El sistema no puede encontrar el file especificado)
           [svn] svn: 'C: \ svncheckout \ Automation' no es una copy de trabajo
           [svn] svn: No se puede leer desde 'C: \ svncheckout \ Automation \ .svn \ format': C: \ svncheck
     out \ Automation \ .svn \ format (El sistema no puede encontrar el file especificado)
           [svn] falló!

     CONSTRUCCIÓN FALLIDA
     C: \ svncheckout \ Automation \ build.xml: 198: no se puede actualizar el dir C: \ svncheckout \ Automation

Aquí está mi objective ant, y después de leer algunos foros descubrí que es mejor decir explícitamente al objective que se ejecute con svnkit He eliminado el nombre de usuario y la contraseña reales.

 <!-- 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> 

Gracias de antemano.

Puede haber un problema de compatibilidad entre svn y svnant. Por ejemplo

svn –version svn, versión 1.6.15 (r1038135) comstackdo el 24 de noviembre de 2010, 15:10:19

TortoiseSVN 1.6.12, compilation 20536 – 32 bits, 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 16 nov 2010 zlib 1.2. 3

apache-ant 1.7.0 \ bin \ ant -version Apache Ant versión 1.7.0 comstackda el 13 de diciembre de 2006

Combinado con svnant-1.2.1.zip generará el error con "copy de trabajo" y file .svn / formatting faltante Si svnant-1.3.1.zip el problema no hay problema.

El post de error lo dice todo, de verdad. Su C:\svncheckout\Automation no es una copy de trabajo. Para verificar eso, puede verificar si existe el C:\svncheckout\Automation\.svn\format (y probablemente no).

¿En qué carpeta se registró?

¿Podría ser que realizó una operación de export en lugar de checkout ? ¿O que la carpeta .svn se eliminó de alguna manera?

¿Podría ser que se haya registrado en una carpeta diferente (no en C:\svncheckout\Automation )?

¿Podría ser que la carpeta de Automation no exista en el repository? (Puede consultar con Repo-Browser de TortoiseSVN).

Yo tuve el mismo problema. En mi caso, podría resolverse simplemente cambiando a javahl.

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

Editar: creo que el problema general está enraizado en el espacio de trabajo que se está creando con una versión más nueva de subversión en comparación con la biblioteca utilizada en ant, en su caso SVNKit. Supongo que en mi sistema javahl está presente en una versión bastante reciente, mientras que SVNKit no lo está, por lo que cambiar a javahl resolvió mi problema. Probablemente pueda resolver su problema actualizando las bibliotecas SVNKit utilizadas por su ant skript. Esta publicación en tigris también apunta en esa dirección.

La respuesta anterior dice que cambie a javahl, pero creó muchos problemas, por lo que, en mi experiencia, la mejor solución es apagar 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> 

He agregado la limpieza solo svn cleanup porque mi script ant se está ejecutando para llevar el process de automation en hudson. Entonces, para evitar cualquier process de limpieza, decidí agregar eso.