¿Cómo uso los Parches?

Estos se utilizan para hacer alguna variación en el código fuente de una aplicación, con el fin de adecuar una aplicación a un comportamiento particularmente deseado. estas variaciones pueden ser actualizaciones, reconfiguraciones, añadir capacidades, entre otros.

Es una forma simple de recibir modificaciones de código y es bastante común entre los desarrolladores pero se deben tener ciertos cuidados para que la aplicación de los parches sea adecuada. 

¿Cómo me beneficia usar parches?

Al obtener el código fuente (*) se tiene un árbol de directorios y ficheros (código-inicial) en el cual realizamos adaptaciones según nos convenga.

Es común que posterior a haber hecho todas las modificaciones para adaptar el código fuente a nuestra necesidad(código-adaptado), se requiera usar una cualidad que aparece en una versión actualizada del código original(código actualizado). Dada esa situación se tienen 2 opciones:

 

  1. Hacer de nuevo todas las adaptaciones en el código actualizado.
  2. Utilizar un parche y en 2 comandos se tiene el código-adaptado con la actualización desea
 
 

¿Cómo funciona el parche?

\

Teniendo el código original, se ejecuta el comando diff que como salida nos muestra la diferencia entre el código-inicial y el código-actualizado, básicamente nos dice que cosas son las que se tienen q cambiar el el código-inicial para que sea idéntico al código actualizado.

Una ves capturada la salida en un archivo ya se tiene el parche, luego se aplica el parche mediante el comando patch, que ejecuta las modificaciones para que el código-adaptado tenga los cambios del codigo-actualizado

Un ejemplo a continuación:

 

 

jcaceres@Josexato:~$ ./codigo-v1.0

Autor: jcaceres

codigo de pruebas version 1.0

Este codigo nos sirve como material de ejemplo para el uso de parches

funcion 1

funcion 2

 

jcaceres@Josexato:~$ ./codigo-v1.0-modificado

Autor: jcaceres

codigo de pruebas version 1.0

Este codigo nos sirve como material de ejemplo para el uso de parches

funcion 1

funcion 2 modificada

 

jcaceres@Josexato:~$ ./codigo-v2.0

Autor: jcaceres

codigo de pruebas version 2.0

Este codigo nos sirve como material de ejemplo para el uso de parches

funcion 1 actualizada

funcion 2

 

jcaceres@Josexato:~$ diff -Nu codigo-v1.0 codigo-v2.0 > parche

jcaceres@Josexato:~$ patch codigo-v1.0-modificado < parche

patching file codigo-v1.0-modificado

Hunk #1 succeeded at 1 with fuzz 1.

 

jcaceres@Josexato:~$ ./codigo-v1.0-modificado

Autor: jcaceres

codigo de pruebas version 2.0

Este codigo nos sirve como material de ejemplo para el uso de parches

funcion 1 actualizada

funcion 2 modificada

  

No es recomendable usar parches en estos casos:

  • La adaptación es simple y corta de rehacer
  • Las adaptaciones hechas están en el mismo intervalo de código donde el parche se aplicará
  • La versión actualizada es muy diferente del código original

 


Como siempre para mas información consultar:

  • man diff
  • man patch
  •