¿Puede mi aplicación conocer su label Git?

Me parece recordar haber visto en otro sistema de gestión de revisiones que podría poner una cadena mágica complicada en su código y el sistema de gestión de revisiones replaceía automáticamente ese patrón por una cadena de versión. El punto es que me gustaría un cuadro de dialog sobre en mi aplicación que muestra la versión actual. En todo lo que he visto sobre Git, no cambia ni un solo bit de tus fonts. Otra idea es que git crea un único file de text que las fonts pueden leer para mostrar la versión. No me gusta la idea de tener que llamar a Git y copyr la label a mano en mi código.

  1. Git no es compatible con "palabras key" ampliables, es política de Linus

En todo lo que he visto sobre Git, no cambia un solo bit de tus fonts

Incorrecto. Puede y lo hace – "normalización de text" para uso multiplataforma es el dolor de cabeza de Big Git

El punto es que me gustaría un cuadro de dialog sobre en mi aplicación que muestra la versión actual.

Debajo del capó casi siempre es la salida de git describe , qué command (en etapa de compilation ) puede usar en su directory de trabajo, almacenar y usar más tarde

  • Pro: simplicidad
  • Contra: agrega un nivel adicional de complejidad en el process de compilation

Otra implementación es "smudge | clean filters": palabra key, almacenada como text estático en el repository, convertida a un elemento que cambia dinámicamente en el directory de trabajo (realmente relacionado con los filters de los progtwigs que realizan esta transformación bidireccional)

  • Pro: transparencia (ya tienes todas las fonts dentro del repository)
  • Contra: Menor portabilidad (la acción del filter debe estar disponible en cada lugar de trabajo), posible complejidad de las reglas de transformación

Puede configurar un gancho post-commit llamando a un script de Python como manuelbua/gitver
(de Manuel Bua , también en Stack Overflow ).

Gol:

Quiero que la cadena de versión y / u otra información útil se incruste en el código de la aplicación automáticamente, "comstackdo", por así decirlo, sin tener que recordar hacerlo manualmente cada vez.

Flujo de trabajo:

  • estás trabajando en tu repository, ahora estás listo para promocionar la versión actual para la próxima versión
  • crear una label de lanzamiento, label de git tag -a v0.0.2 -m 'Bump version'
  • define tu NEXT versión, la que vas a trabajar con ejecutar gitver next 0.0.3
  • corre gitver y comtesting que todo está bien
  • OPCIONAL: gitver preview <template name> previa o actualice las templates de información de la versión de su proyecto ejecutando gitver preview <template name> o gitver update <template name> , luego reconstruya el proyecto para reflejar los cambios de la versión
  • cualquier otra entrega manual de mantenimiento de casa se puede realizar ahora
  • ahora estás trabajando para la próxima versión, repite cuando el time de liberación ha llegado de nuevo

Eso te ayuda a generar un file con la información de metadatos correcta (como la versión derivada de la última label de la aplicación), para que la uses durante la compilation.

Simplemente le pido al OS / Git la información de la label. Esta es mi vista de versión (php):

 <?php $output = []; exec("git tag", $output); $version = end($output); ?> {{$version}} 

De esa manera, solo almaceno la versión en un solo lugar.