miércoles, 6 de noviembre de 2013

Git. Creando un Custom Action.


Una de las cosas que más uso en GIT, es la combinación de mirar diferencias entre diversas ramas y comprobar si en la rama donde estoy actual, necesito hacer un refactor de una rama a otra.

No, no puede fusionarlas, porque son paralelas, y algunas cosas que están de una manera , en otra se hacen de otra, por lo tanto, "master" hay más de una.

Entonces, era muy fácil coger el hash sobre el cual quiero mirar un archivo en concreto.

Por ejemplo:

git difftool 23dc453a stdio.h

Esto hace que se nos abre nuestro comparador , y podamos comparar contra el commit 23dc453a y modificar nuestro fichero stdio.h 

Si esto lo hacemos desde SourceTree , con External Diff, tenemos el inconveniente que siempre lo hace contra 2 ficheros temporal. Eso es una faena, porque por mucho que adaptemos el código, ese stdio.h es una copia del original.

Ahora con los "Custom Action" de SourceTree, podemos crear el comando adecuado que haga lo que nos interesa.

Primero, vamos a explicar que tenemos un problema, y es que el $SHA, nos esta devolviendo los 2 hash de los commit seleccionados en SourceTree.
Entonces, no podemos hacerlo directamente. 

Lo que haremos es crear un diff.bat, que va a contener lo siguiente;

git difftool %1 %3


Lo único que falta es crear el comando como esta imagen.



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...