¿Qué necesita Subwcrev?

Escribí un script de construcción en ant El código fuente de mi proyecto está versionado en svn.

Como parte de mi proyecto, tuve que escribir una class Java, que contiene información de subversión. En general, el script de compilation funciona bien. Se recostackrá toda la información necesaria, excepto una. Este es el nombre del autor que cometió el último cambio en el reporsitory. Aunque leí el manual , todavía se me ocurren algunas ideas.

Mi pregunta es: ¿existe una forma de get también este detalle con un script ant?

Gracias

EDITAR:

<target name="version" description="set version number"> <echo message="Setting version information ..." /> <copy file="build/Version.java.template" tofile="./cq/apps/src/de/anna/util/Version.java" /> <tstamp> <format property="TODAY_De" pattern="yyyy/MM/dd HH:mm:ss" locale="de,De"/> </tstamp> <replace file="./cq/apps/src/de/anna/util/Version.java"> <replacefilter token="@APPNAME@" value="${app.name}" /> <replacefilter token="@BUILDVERSION@" value="${build.number}" /> <replacefilter token="@BUILDDATE@" value="${TODAY_De}" /> </replace> <exec executable="${version.tool}" spawn="false" dir="."> <arg line=". cq/apps/src/de/anna/Util/Version.java cq/apps/src/de/anna/Util/Version.java" /> </exec> </target> 

Lo que quiero agregar en el file Version.java, que es el autor de la última confirmación y la identificación de la input de cambio. (Creo que / thought $ Author $ y $ Id $ fueron las variables)

Olvídate de SubWCRev y piensa en Subversion. Con eso trabajas.

En Subversion, debe establecer una propiedad llamada svn:keywords , y establecer ese valor para las palabras key que desea utilizar. Esto se explica en el manual de subversión en línea en la sustitución de palabras key .

Al usar la propiedad svn:keywords , tiene el repository de Subversion manejando los nombres de las variables por usted. Por ejemplo, tiene un file llamado information.txt que se ve así:

 The last person to check in the file is $Author$ and the last version was $Version$. 

Verificar ese file en Subversion no cambia $Author$ o $Revision$ .

Ahora, establece la propiedad svn:keywords en el file information.txt :

 $ svn propset svn:keywords "Author Date" information.txt $ svn commit -m"Setting svn:keywords to set the information in information.txt" 

También puede hacer esto a través de TortoiseSVN a través del menu contextual TortoiseSVN -> Propiedades

Ahora, cuando miras el file, los campos cambian:

 $ cat information.txt The last person to check in the file is $Author:David$ and the last version was $Revision:123$. 

No es lo que quieres? Otra cosa que puedes hacer es simplemente ejecutar svn info y get las properties que deseas en formatting XML. Luego puede usar la tarea <xmlProperties> para leerlos como properties:

 <project> <property name="target.dir" value="${basedir}/target"/> <mkdir dir="${target.dir}"/> <exec executable="svn" outputProperty="svn.info"> <arg line="info --xml"/> </exec> <echo message="${svn.info}" file="${target.dir}/info.txt"/> <xmlproperty file="${target.dir}/info.txt" keeproot="no" prefix="svn"/> <echo message="Author = &quot;${svn.entry.commit.author}&quot;"/> <echo message="Date = &quot;${svn.entry.commit.date}&quot;"/> <echo message="Revision = &quot;${svn.entry(revision)}&quot;"/> </project> 

Utilizo la tarea <exec> para tomar la información de Subversion y ponerla en la propiedad ${svn.info} . Luego uso la tarea <echo> para ${target.dir}/info.txt file ${target.dir}/info.txt . Después de eso, puedo leer el file a través de la tarea <xmlproperty> y extraer la información a continuación.

Desde allí, ahora tengo toda la información de revisión y repository de Subversion almacenada en varias properties.

Si conoce collections de resources, puede hacerlo sin primero escribir el file en ${target}/info.txt

 <project> <exec executable="svn" outputProperty="svn.info"> <arg line="info --xml"/> </exec> <xmlproperty keeproot="no" prefix="svn"> <propertyresource name="svn.info"/> </xmlproperty> <echo message="Author = &quot;${svn.entry.commit.author}&quot;"/> <echo message="Date = &quot;${svn.entry.commit.date}&quot;"/> <echo message="Revision = &quot;${svn.entry(revision)}&quot;"/> </project> 

Espero que esto es lo que estás buscando.