Me gustaría que mi .exe tenga acceso a una cadena de recursos con mi versión svn. Puedo escribir esto a mano, pero preferiría una forma automática de insertar esto en tiempo de compilación. ¿Existe tal capacidad en Visual Studio 2008?Número de revisión SVN incrustado en tiempo de compilación en una aplicación de Windows
Respuesta
Yo quería una disponibilidad similar y encontré $ Rev $ insuficiente porque solo se actualizó para un archivo si la revisión de ese archivo se modificó (lo que significaba que tendría que ser editado y comprometido por mucho tiempo: no era algo que quisiera do). En cambio, quería algo basado en el número de revisión del repositorio.
Para el proyecto en el que estoy trabajando ahora, escribí un script Perl que ejecuta svnversion -n
desde el directorio más alto de mi copia de trabajo y muestra la información de revisión más reciente en un archivo .h (en realidad lo comparo una reversión guardada en un archivo no versionado en mi copia de trabajo para que no sobrescriba la información de revisión actual en cada compilación, pero si decide hacerlo depende de usted). Este archivo .h (o una serie de archivos si necesario, según su enfoque) se hace referencia tanto en mi código de aplicación como en los archivos de recursos para obtener la información donde me gustaría.
Esta secuencia de comandos se ejecuta como un paso previo a la compilación para que todo esté actualizado antes de que comience la compilación y los archivos apropiados sean reconstruidos automáticamente por su herramienta de compilación.
Puede obtener SVN to embed it for you, si eso resuelve el problema. Vea la palabra clave $ Rev $ en esa página.
Desafortunadamente, la palabra clave $ Rev $ solo proporciona la última revisión en la que * se modificó * el archivo en el que aparece *. –
La solución de antik es la que utilizamos. Tenga cuidado al usar variables de entorno, el archivo .h asegura que puede tener una dependencia que provocará la recompilación de los archivos que lo necesitan cuando cambia el número de svn rev.
Buen punto: olvidé que era otro beneficio en nuestro entorno. – antik
¿Qué le parece usar SubWCRev la herramienta de línea de comandos que se envía con TortoiseSVN. Usted crea un archivo de plantilla con tokens como $ WCREV $ $ WCDATE $ etc. Luego, realice un paso previo a la construcción que ejecute SubWCRev en su archivo de plantilla para crear el archivo fuente real que se alimenta al compilador.
- 1. Actualizando mediante programación FILEVERSION en una aplicación MFC con número de revisión SVN
- 2. ¿Cómo inyectar el número de revisión de SVN en JAR?
- 3. Pantalla ASP.NET Número de revisión SVN
- 4. Cambiar la marca de tiempo de una revisión de SVN
- 5. use CMake para obtener la revisión de svn de compilación
- 6. Usar SVN Revisión para etiquetar compilación en CCNET
- 7. Incluir número de revisión SVN en el código fuente
- 8. Obteniendo el número de revisión SVN en un programa automáticamente
- 9. Mostrar la marca de tiempo de compilación en una aplicación
- 10. ¿Cómo puedo ver el número de revisión de cada archivo en una copia de trabajo SVN?
- 11. ¿Cómo obtener programáticamente el número de revisión SVN?
- 12. ¿Cómo configurar un número de revisión para svn externo?
- 13. svn copy [número de revisión] -r [url] [ruta]
- 14. ¿Cuál es el número de revisión máximo soportado por SVN?
- 15. svn tamaño de revisión en bytes
- 16. ¿Puedo saber el número de revisión de una confirmación?
- 17. Windows Mobile 6.5 tiempo de compilación (VS2008)
- 18. Número de revisión de Subversion en múltiples proyectos
- 19. ¿Cuál es una manera fácil de obtener la revisión de svn actual en una aplicación de estudio visual de C++
- 20. SVN a HG: ahora salida número de revisión SVN del conjunto de cambios HG
- 21. ¿Puedo ver el número de revisión actualmente verificado en Tortoise SVN?
- 22. ¿Cómo elimino 1 archivo de una revisión en SVN?
- 23. ¿Cómo construir una revisión específica de SVN en Hudson/Jenkins
- 24. ¿Cómo se muestra el número de revisión de SVN en el registro de git?
- 25. ¿Cómo se configura el número de compilación basado en el número de revisiones Subversion con CruiseControl.net
- 26. RNGCryptoServiceProvider - Revisión de número aleatorio
- 27. Aplicación de anotaciones Java en tiempo de compilación
- 28. Cómo obtener el número de revisión SVN en cierta fecha o rango de fechas
- 29. ¿Cómo se determina el último número de revisión de SVN enraizado en un directorio?
- 30. SVN: Lista de archivos comprometidos para una revisión
TortoiseSVN tiene una pequeña utilidad auxiliar llamada SubWCRev.exe, que encuentra el número de revisión confirmado más alto de una copia de trabajo. – dummy
¡Es bueno saberlo! Mi equipo usa TortoiseSVN mucho, así que probablemente hubiera sido bueno saber sobre el ayudante cuando escribí los guiones. Puedo examinar SubWCRev.exe en algún momento. Sería bueno dejar la dependencia de la distribución normal de Subversion ... – antik
Un consejo para otros que implementan esta idea: Considere hacer que su script escriba una nueva versión solo si los cambios realmente tienen hecho localmente; es decir, solo si el valor generado por 'svnversion' incluye una" M "entre el conjunto final de caracteres. Eso le permitirá reconstruir su proyecto después de una confirmación sin que cambie el número de versión. (Consulte [la documentación 'svnversion'] (http://svnbook.red-bean.com/en/1.7/svn.ref.svnversion.re.html) para obtener una descripción del formato de su salida). –