Crear archivo de diferencias entre tags en Git

calendario29/11/2011 reloj18:31 calendarioCategorías: Peripecias ComentarComentar

Hace algún tiempo que vengo utilizando GIT como control de versiones, y dado que empiezo a utilizarlo también a la hora de hacer despliegues en los servidores, necesitaba saber qué ficheros tenía que sobreescribir a la hora de hacer una actualización.
Por ello me puse a buscar, y di con este script que guardaba estos ficheros del HEAD en un fichero. En mi caso, a veces tengo que crear estos ficheros de diff's entre dos tags, por lo que he modificado un poco el script original:

  1.  
  2. if [[ -n $1 ]]; then
  3. TAGhasta=$1
  4. else
  5. echo "Opciones: "
  6. echo "$0 VERSION-desde"
  7. echo "$0 VERSION-desde VERSION-hasta"
  8. exit
  9. fi
  10.  
  11. if [[ -n $2 ]]; then
  12. TAGdesde=$2
  13. else
  14. TAGdesde='HEAD'
  15. fi
  16.  
  17. echo "GIT diff:
  18. =========
  19. + Desde: $TAGdesde
  20. + Hasta: $TAGhasta
  21. + Archivo: diff-`date +%Y%m%d%H%M`.tar
  22.  
  23. Archivos incluidos:
  24. ===================
  25. `git diff $TAGhasta $TAGdesde --name-only`"
  26. git archive -o diff-`date +%Y%m%d%H%M`.tar $TAGdesde `git diff $TAGhasta --name-only`
  27.  

Y el funcionamiento es bastante intuitivo:

 patoroco : meent $ ./script.sh 1655af023224482fe36d0f2b4f6e731fe2385993 9a149fbc5f1bbf56a6cd675211299492d6d819cd 
GIT diff:
=========
	+ Desde: 9a149fbc5f1bbf56a6cd675211299492d6d819cd
	+ Hasta: 1655af023224482fe36d0f2b4f6e731fe2385993
	+ Archivo: diff-201111291816.tar

Archivos incluidos: 
===================
apiclass.php
apiserver.php
database.php
index.php
logging.php

TagsTags: ,

Comentarios