Periodo de transicion: patches

0 views
Skip to first unread message

Dario Rodriguez

unread,
Dec 22, 2011, 4:01:26 PM12/22/11
to safa-developers
Hola gente,

Dado que ya vamos empezando a ver que SAFA commitea, en un tiempo comenzaremos a manejarnos con parches, por eso quiero que enviemos parches en lugar de archivos completos. Con el tiempo, se acostumbraran a esta metodología que es muy sencilla y nos permite llevar un hilo.

Como quiza algunos no estan familiarizados lo ejemplifico veran que es muy simple:

Supongamos que descargo safa-v0.0.tar.gz de la página de safa. Después de mirar un rato, corrijo un error en el archivo holamundo.c.

Ahora, lo que debo hacer para que esto funcione, es tener la copia original de holamundo.c a mano, por ejemplo le pongo holamundo.c.viejo, y ejecuto en una terminal:

 $ diff -uN holamundo.c.viejo holamundo.c > holamundo.c.patch

Listo, eso genera el parche.

Ahora, para mandarlo a la lista, voy a indicar cuál es la version inicial sobre la que aplica el patch, ejemplo: "Envio este parche sobre v0.0", y adjuntamos el parche, indicando su SHA-1 (para identificarlo), ejemplo 0f0444blablabla

Si alguien envia otro parche sobre el nuestro, se dira: "Envio este parche sobre v0.0 patch 0f0444...". Y así sucesivamente. Cada patchlevel significa que hay que descargar y aplicar un parche sobre la version antes de trabajar. Es decir que quiza el archivo que yo modifique ya estaba parcheado, entonces su version es: v0.0 patch:0f0444blablabla (No es necesario poner el SHA-1 completo, los primeros 5 a 10 digitos nunca se repiten)

Para aplicar el parche es tan simple como:

 $ patch holamundo.c < holamundo.c.patch

Si nos vamos manejando con esto mejor. Despues de que los commits se hagan bien, hago una utilidad de parcheo.

Saludos
--
Dario

Dario Rodriguez

unread,
Dec 22, 2011, 4:46:20 PM12/22/11
to safa-developers
Adjunto un ejemplo. Primero descomprimen todo:

$ patch hola-old.c < hola.c.patch

Obtienen el mismo que mande en hola.c, porque parchearon el viejo. Si quieren volver a como estaba:

$ patch -R hola-old.c < hola.c.patch

Vale decir que el ejemplo es el parche desde hola-old.c hasta hola.c
Cualquier cosa pregunten
Saludos
--
Dario
hola.c.patch.gz
hola.c.gz
hola-old.c.gz
Reply all
Reply to author
Forward
0 new messages