Buenos dias,
ultimamente me he acostumbrado a incluir en mis programa, de forma automatica, en que revision de Git estaba en el momento de compilar la applicación, asi si hay algun problema puedo saber exactamente que version del codigo era.
En Scala (lenguaje con el que trabajo actualmente) es facil usando plugins para su herramienta de compilacion (Sbt), pero nunca lo habia probado en Delphi.
Hoy he estado dandole vueltas a como hacerlo en Delphi y he llegado a esto (si alguien tiene una solucion mas facil que me avise):
He creado el sigueinte bat, y lo he guardado en la carpeta del proyecto:
@echo off for /f %%a in ('git rev-parse HEAD') do set gitCommit=%%a for /f %%a in ('git rev-parse --short HEAD') do set gitShortCommit=%%a echo gitCommit = '%gitCommit%'; > gitCommit.inc echo gitShortCommit = '%gitShortCommit%'; >> gitCommit.inc
Y en Project->Options->Build Events->Pre-built events he añadido el siguiente comando:
$(PROJECTDIR)\prebuild.bat
Asi antes de cada "build" se ejecuta el bat, creando un fichero como este:
gitCommit = 'd9a01369f38b4c36672a3409e9be12c67a2877ce'; gitShortCommit = 'd9a0136';
Que podemos incluir en nuestro codigo asi:
const appName = 'Appname'; appVersion = '0.1.0'; {$include gitCommit.inc}
Y usarlo por ejemplo para ponerlo en el titulo de la ventana:
procedure TfrmMain.FormCreate(Sender: TObject); begin Caption:= appName + ' - ' + appVersion + ' - ' + gitShortCommit; end;
Saludo
PD: Si alguien conoce una manera más sencilla que lo diga