¿Cómo puede un progtwig conocer su propio git SHA?

Entiendo que tal vez no haya una solución para esto, pero estamos construyendo un sistema que procesa algunos datos y en los loggings queremos almacenar la versión del progtwig que se utiliza para generar los datos. Estamos usando Java en caso de que importe. La versión del progtwig no es más que el git SHA. Usando el SHA podemos rastrear qué build / commit se utilizó para generar los datos. ¿Cómo puede nuestro progtwig determinar su git SHA? ¿Es posible? Aprecia tus pensamientos

Una posible idea es tener un script que al comprometer el código, extraiga el git SHA del post de confirmación y luego lo escriba en un file de resources. Obviamente, este file no será rastreado por git (es decir, el file debe agregarse a .gitignore). En time de ejecución, el progtwig leería el SHA de este file. ¿Alguna mejor alternativa?

Una cosa que realmente queremos evitar es que un desarrollador accidentalmente ingrese código ejecutando git commit directamente en lugar de ejecutar el script. Si eso sucede, el SHA en el file de resources no se actualizará y esto introduciría un error grave. ¿Cómo manejar esto?

Otro problema es que cuando hacemos git commit -m "commit message" , git no escupe el SHA completo sino que lo trunca. ¿Cómo podemos hacer que Git imprima el SHA completo?

Puede almacenar el Git SHA como parte de su process de empaquetado. Obviamente, la implementación depende de su sistema de compilation pero, en general, puede escribir el SHA en un file de propiedad y cargarlo en time de ejecución.

Variable Bash para su SHA en el repository:

 $(git rev-parse HEAD) 

Puedes usar eso en tu construcción. Si está utilizando algo como Jenkins para sus comstackciones, entonces hay otras preguntas con respuestas para eso.

Git SHA no está truncado. Truncado significa cortarlo.

SHA es una key hascode de 64 bits en formatting legible no humano.

Que es Sha?

sha es un progtwig simple que tiene files hash. Utiliza el algorithm Secure Hash del Instituto Nacional de Estándares y Tecnología. Puede usar SHA-1, SHA-256, SHA-384 o SHA-512, que generan, respectivamente, hashes de 160, 256, 384 o 512 bits. sha se puede usar en scripts para hacer, por ejemplo, comprobación de integridad de files. Las implementaciones C de los algorithms también pueden ser útiles en otros proyectos.

Hay varias técnicas para extraer la versión de software, generalmente la forma en que lo usamos es usar la label git y los sufijos Major, Minor y Patch en git pre commit hooks, autogenerará las notas de la versión y será fácil saber qué function se está ejecutando en los diferentes versiones.