domingo, 26 de mayo de 2013

Crear/aplicar un parche usando Git

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente
Antes de comenzar con los pasos señalar que si el parche que deseas hacer es para corregir un bug o agregar una nueva funcionalidad deberías hacer esto en una nueva rama dedicada solo a ello, en base a esto el parche que contruiremos en este post se creará a partir de las diferencias entre dos ramas aunque también se puede crear entre versiones, fechas, marcas, …
  1. Crear un directorio donde estará nuestro “gran proyecto” (mkdir test-git).
  2. Entrar e inicializar un repositorio vacio. (cd test-git/ ; git init)
  3. Crear algún archivo y editarlo(nano main.c):
    #include <stdio.h>
    int main (int argv, char *argvv[])
    {
         printf ("hello git\n");
         return 0;
    }
  4. Agregar a git el directorio actual(que en el se encuentra el archivo de interés) y hacer nuestro primer commit lo que además abilitará la rama master.(git add . ; git commit -m “the first commit”)
  5. Ya podemos listar las ramas y ver que se encuentra activa la master(git branch).
  6. Creamos una nueva rama “en la que escribiremos los cambio al proyecto”(git branch crpatch).
  7. Nos movemos a la nueva rama y verificamos que sea la activa (git checkout crpatch ; git branch).
  8. Efectuamos los cambio al proyecto:       
  9. Crear algún archivo y editarlo(nano main.c):
    #include <stdio.h>
    int main (int argv, char *argvv[])
    {
         printf ("
    hello git, this program become from a patch\n");
         return 0;
    }
  10. Agregar los cambios (git add . ; git commit -m “commit for the patch”).
  11. Ya podemos ir chequeando las diferencias que ha tomado el proyecto con repecto a la rama master (git diff master).
  12. Por útimo crear el parche… (git format-patch master --stdout > crpatch.patch).
Ya tenemos el parche, ahora veremos como aplicarlo:
  1. Nos movemos a la rama master y eliminamos la rama “crpatch” con lo que perderiamos todos los cambios efectuados si no fuese porque contamos con el parche(git checkout master ; git branch -D crpatch).
  2. Revisamos los cambios que presumpondría el aplicar el parche(git apply --stat crpatch.patch).
  3. Revisamos si el aplicar el parche nos pudiese taer algún error (git apply --check crpatch.patch). Si no obtienes nada en la salida es porque puedes aplicar el pache satisfactoriamente.
  4. Por último aplicamos el parche revisando antes y después el contenido para comprobar y entender el trabajo(cat main.c ; git apply crpatch.patch ; cat main.c).
Listo!!!, espero que estés preparado lo mismo para “escribir” un parche y enviarlo a los desarrolladores con los cuales quieras colaborar que para parchear algún programa con un parche que tengas para ello.

1 comentario:

  1. Gracias master, me ayudaste un montón. Para los que quieran revertir un parche, pueden usar: git apply -R . Saludos.

    ResponderEliminar

Deje su comentario..., 0 palabras obscenas...