Recuperando la revisión de SVN a través de ANT

Por lo tanto, tengo un proyecto de Java para el que he creado un file de compilation ANT (bastante complejo). Dentro de este file, tengo objectives para comstackr, JAR y probar mi código, que funciona bastante bien.

Lo que hace que este proyecto sea interesante es que los miembros del equipo están trabajando en sus máquinas personales, muchas de las cuales ejecutan Eclipse Juno en Windows 7. No puedo garantizar que las bibliotecas que agregue a ANT estén disponibles en las computadoras de los otros miembros. . Por lo tanto, estoy tratando de hacer reference a todas las bibliotecas necesarias en time de ejecución. Sin embargo, recibo un error cuando trato de get el número de revisión actual.

El error:

svntest: [echo] Svn4Ant: JWare AntXtras/Svn4Ant 3.0.0, Aug-22-2011, SVNKit: SVN/1.7.8 SVNKit/1.7.8 (http://svnkit.com/) r9538_v20130107_2001 [svn:revget] Unable to execute svnclient subcommand revget. Reason: "svn: E155021: The path {Project Repository} appears to be part of a Subversion 1.7 or greater [svn:revget] working copy. Please upgrade your Subversion client to use this [svn:revget] working copy.". 

El Classpath ANT:

 AntClassLoader[C:\Users\User\workspace\RoboLib\utils\ant-commons-net.jar; C:\Users\User\workspace\RoboLib\utils\ant-googlecode-0.0.3.jar; C:\Users\User\workspace\RoboLib\utils\commons-net-3.2.jar; C:\Users\User\workspace\RoboLib\utils\jw-antxtras.jar; C:\Users\User\workspace\RoboLib\utils\jw-svn4ant-admin.jar; C:\Users\User\workspace\RoboLib\utils\jw-svn4ant.jar; C:\Users\User\workspace\RoboLib\utils\svnkit-1.7.8.jar; C:\Users\User\workspace\RoboLib\utils\svnkit-cli-1.7.8.jar; C:\Users\User\workspace\RoboLib\utils\svnkit-javahl16-1.7.8.jar] 

Todas estas bibliotecas están en su versión más nueva, y el sistema en el que se están probando es Eclipse Juno que se ejecuta en Windows 7.

Los objectives relevantes de ANT:

 <project default="run" name="WAVE RoboLib SDK" basedir="." xmlns:svn="jwaresoftware.svn4ant.client"> ... <target name="svntest"> <taskdef uri="jwaresoftware.svn4ant.client" resource="org/jwaresoftware/svn4ant/client/antlib.xml"> <classpath> <fileset dir="utils/"> <include name="**.jar"/> </fileset> </classpath> </taskdef> <svn:libcheck/> <echo message="Svn4Ant: ${svn4ant.label}, SVNKit: ${svnkit.label}"/> <svn:server id="my.repo" isdefault="yes" authcache="no" > <url value="${svn.url}"/> <cnetworkingential username="un" password="pw"/> </svn:server> <svn:revget path="." property="build.reporev" /> <echo message="${build.reporev}" /> </target> </project> 

Parece que svn4ant no es compatible con los repositorys de svn 1.7, consulte una discusión relevante sobre este tema con una explicación que incluya references al código fuente.

A juzgar por el plan de lanzamiento de svn4ant, no hay un plan para admitir pronto las copys de trabajo de svn 1.7. Por lo tanto, debe search otra forma de get la información de revisión.

Una opción sería analizar la salida de svn info , usar svnversion para get la revisión de la copy de trabajo o almacenar el número de revisión en otro lugar usando un enganche post-commit.