miércoles, 27 de agosto de 2014

Git zippatch, creando un nuevo comando.



Podemos obtener a través del comando git archive, una copia de nuestro repositorio en un zip.
Esto es genial.

Ahora , vamos a rizar el rizo, un poquito.

Tenemos una conexión a un ftp que tiene nuestra web. Por desgracia, no tenemos git para poder aplicar los parches, y tampoco es un repositorio, por lo tanto, lo único que nos queda es subir los ficheros que hemos modificado/creado desde nuestro repositorio.

Una de las cosas que odiamos los programadores es perder el tiempo en cosas banales.
No me dirás que subir 40 ficheros en diferentes rutas es una tarea agradable, si es así, este post no es para tí. ;-)

La solución sería que alguna cosa que creará un zip con solamente los cambios de la rama donde estemos, y con la misma estructura de directorios.

Git es una caja de sorpresas, en un par de pasos;

1) Creamos un fichero, zippatch.sh, ;
     git archive -o update.zip HEAD $(git diff --name-only HEAD^) -v
     y lo colocamos , en el repositorio o en una ruta que este en el PATH del sistema, por ejemplo, en /git/bin/

2) En nuestro .gitconfig global, creamos un nuevo alias;
[alias]
        zippatch = "!sh zippatch.sh"

Eso es todo. Ahora desde la linea de comando, ejecutamos, podemos ver algo como;

$git zippath 
file.c
dir1/
dir1/readme.MD

Esto nos creará un fichero llamado update.zip,  que contendrá SOLO los ficheros que se modificaron en el último commit. 



No hay comentarios:

Publicar un comentario

Android y Git. Disponer del hash automáticamente.

Una de las cosas a las que estoy acostumbrado, es tener siempre en mi código, el hash/tag/versión del control de versiones que estoy usan...