Usar git hooks para crear un informe de diferencias para cada file que ha cambiado para la confirmación actual

Intento crear un gancho git para crear un informe de diferencias para cada file que ha cambiado entre mi código y el código del server.

La mayoría de las soluciones que he visto dicen que use el command diff de git para crear el informe, pero lo necesito para cada file que ha cambiado Y necesito que se cree más allá de la comparación específicamente como un informe HTML lado a lado.

Entonces, para cada file que ha cambiado, necesitaría llamar más allá de comparar para crear un file .html que detalle lo que ha cambiado. Si se modificaron 63 files, quisiera 63 files html que muestren una diferencia de los cambios.

Tengo una idea aproximada de cómo automatizar más allá de comparar para crear el diff, simplemente no sé cómo obtendría las routes de los files que han cambiado junto con las routes a la memory caching local de los files remotos que han cambiado .

Alguien ha hecho algo como esto?

EDITAR – Quería usar githooks porque quería tener los files de diferencias generados automáticamente para cada confirmación sin que nadie tenga que pensar en ello. Esto es parte de nuestro process de verificación ahora (según lo dicte la administración) y es tedioso hacerlo manualmente por cada file que ha cambiado.

  1. Para enumerar los files modificados:

    git diff --name-only 
  2. Para imprimir el contenido de un file en una revisión especificada :

     git show <revision>:<file> 
  3. Beyond Compare parece aceptar stdin como input al agregar - al command.

Combinando estos, suponiendo que está en Windows y suponiendo que el server está en la twig de origin/master , podría hacer algo como esto: (tenga en count que no lo probé)

 for f in $(git diff --name-only) git show origin/master:"$f" | BCompare.exe "$f" - # add correct option(s) before "$f" to generate html do 

Más allá de comparar no parecía gustarle usar el hilo de text con una list de arguments, así que terminé yendo con algo como esto:

 COUNTER=0 for f in $(git diff --name-only --cached); do git show HEAD:"$f" > tempRemote.dat "C:\Program Files (x86)\Beyond Compare 3\BCompare.exe" "$f" tempRemote.dat "C:\output\output${COUNTER}.html" @"script.txt" rm tempRemote.dat ((COUNTER++)) done