Imagina que has distribuido una versión de tu aplicación, que está en uso y, pasadas unas semanas, tienes lista nuevas funcionalidades que quieres incorporar en casa del «cliente».
Algo parecido es lo que me ha ocurrido recientemente con una aplicación web que le he desarrollado a mi hermano para simplificarle algunas tareas de gestión en el colegio en el que trabaja.
Aunque le podría haber enviado un archivo comprimido con la versión nueva de la web preferí reducir el tamaño del fichero y aquí os dejo cómo hacerlo por si os resulta de utilidad en un futuro (o yo no me acuerdo de cómo lo hice 😅)
Obteniendo los ficheros modificados
Lo primero que necesitaremos saber es qué ha cambiado desde la último vez y, gracias a GIT, no es demasiado complicado.
Basta lanzar un
git diff –-name-only HEAD 25322ead6b18fb2bb4c85163479f81e8d4a3acf1 > /tmp/ficheros.lst
donde:
- 25322ead6b18fb2bb4c85163479f81e8d4a3acf1 es el identificador del último commit que tiene el cliente. Debería haber usado tags pero como es un proyecto de andar por casa y, por las fechas del log, sé perfectamente cuándo le envié la última versión he optado por hacerlo así.
- HEAD referencia a la cabeza (últimos cambios) en el repositorio de mi proyecto. Puedes utilizar cualquier commit intermedio según tus necesidades y circunstancias particulares
- /tmp/ficheros.lst es el fichero en el que anotar las rutas a los ficheros que han cambiado entre los dos commits anteriores
Comprimiendo una lista de ficheros
Aunque el comando zip permite indicar, uno a uno, los ficheros que deseamos incluir, es mucho más sencillo cuando se utiliza un fichero con el listado de archivos a comprimir y, a nosotros, nos va a venir de perlas ¿no os parece? 😉
Lanza un
zip -9 /tmp/cambios.zip -@ < /tmp/ficheros.lst
donde:
- /tmp/cambios.zip es el fichero comprimido a generar
- /tmp/ficheros.lst es el fichero generado por GIT en el apartado anterior y que indica los archivos (con sus rutas) a incluir
Conclusión
Pequeño truco que nos permitirá comprimir todos los archivos que han cambiado entre dos commits de nuestro repositorio GIT.
Y tú…
- ¿Qué política de actualizaciones sueles seguir?
- ¿Conocías las posibilidad de comprimir una lista de ficheros?
- ¿Has usado alguna vez la posibilidad de listar los ficheros que han cambiado en tu proyecto?
- …