2009-03-14 28 views
6

Mi sitio web es una versión revisada del repositorio SVN. Quiero decir que las carpetas .svn se colocan en el servidor web. No uso publicación web.¿Cómo mostrar la revisión SVN en el sitio web de forma dinámica?

Y quiero mostrar la revisión actual del proyecto (todo el sitio web) en el pie de página. ¿Cómo puedo hacer eso?

Si estuviera usando publicación web, podría determinar la revisión en compilación/publicación y escribirla como html estático.

Entonces, ¿cómo obtener una revisión de forma dinámica? Leer archivos .svn directamente? ¿Hay mejores formas?

Vi otras preguntas similares, pero la respuesta fue utilizar SubWCRev.exe, no es desafortunadamente aceptable.

Editar:Tarn dio idea interesante sobre SVN engancha al confirmar. ¿Alguna otra idea?

Respuesta

2

Puede escribir ganchos para SVN. Puede escribir un enlace para actualizar un archivo con la compilación actual como parte de su proceso de pago. Luego puede leer, almacenar en caché y mostrar ese número de compilación en su sitio.

+0

¡Gracias por la idea! ¿Puedes proporcionar más información sobre cómo escribir los ganchos de SVN? – abatishchev

+1

Phil Haack escribió en su blog acerca de escribir ganchos SVN en .NET usando CaptainHook http://haacked.com/archive/2006/07/31/CaptainHookIsOnSourceForge.aspx – tarn

0

Lo único que se me ocurre es usar los binarios de la CLI svn y llamarlos desde la página. De esta forma, puede quitar el resto y tomar el número de revisión. Para ser honesto, es una solución algo fea.

+0

¿Qué son los binarios svn CLI? – abatishchev

+0

SVN binarios = los comandos que uno usa en la línea de comando, como 'svn update' y similares. Escriba 'svn help' (sin comillas) en la línea de comandos para obtener una útil lista de comandos que puede usar. –

8

use keyword substitution. habilite la sustitución de los archivos que desea mostrar información de revisión, y coloque una palabra clave, como $Revision: 144 $, allí.

nota que

$ Rev $ expande para mostrar la última revisión en la que cambia el archivo, no la última revisión a la que fue actualizan

(ver enlace más arriba) . si desea mostrar el número de revisión del repositorio global, mejor utilice svnversion.

también, vea Relacionados.

+0

He hecho esto en una variable de aplicación, funcionó muy bien. – ccook

+0

Esto mostrará la revisión en la que * ese archivo en particular * cambió por última vez (N). Esto no es lo mismo que la revisión cuando la parte del repositorio que contiene el sitio web cambió por última vez (M). N <= M. – bendin

+0

No puedo creer que no supiera esto gracias por la sugerencia –

1

Si desea mostrar el último número de revisión de su repositorio o sucursal completa, la sustitución de palabras clave no ayudará, creo que una mejor solución sería utilizar un software de gestión de compilación/integración continua, como CruiseControl.NET o TeamCity con un buen script de construcción

Duplicado de:

+1

this * is * 645945/how-to-display-svn-revision-on-web-site-dynamically –

1

Esta pregunta anterior sobre por lo tanto tiene una cierta discusión que podría ser útil para usted: Always Commit the same file with SVN.

Siempre lo hice ejecutando un script que usaría sed para reemplazar un comentario con la marca de tiempo actual en mi archivo $ Rev $. De esta forma, el contenido del archivo cambiaría y Subversion lo confirmaría.Algo manual, pero podría escribir una secuencia de comandos para hacer primero eso, y luego hacer el comando real svn commit.

Cuestiones relacionadas