Aplicación de Parches a Módulos de Drupal

Es común encontrar en los temas de Issues y Bug de los módulos dentro de drupal.org, parches a los diferentes problemas que pueden llegarse a presentar a lo largo del ciclo de vida de un módulo. Ahora bien, encontramos la solución a un problema que tenemos pero no sabemos cómo aplicarlo, a continuación os explicare como aplicar parches.

Es importante tener en cuenta el formato del parche, esto debido a que antiguamente se utilizaba el formato p0 y actualmente se cambio por el generado por Git que es p1. Si el parche que vas a aplicar es más antiguo que el 31 de mayo del 2011 es posible que este en formato p0.

Debido a este cambio de formato es que existen dos formas de aplicar un parche, una mediante Git y otra mediante el programa de terminal patch disponible en Linux y MacOs.

 

Utilizando Patch

El primer paso que debemos ejecutar es descargar el parche que necesitamos aplicar en la carpeta del módulo en cuestión, por ejemplo en Linux desde terminal lo haríamos de la siguiente manera:

wget http://drupal.org/files/1327960-custom_breadcrumbs-fix-token-api-use-1.patch

Seguidamente aplicaremos el parche, esto se hará ejecutando en la terminal invocando el programa patch con el parámetro del tipo de formato en este caso -p1, de la siguiente manera:

patch -p1 < 1327960-custom_breadcrumbs-fix-token-api-use-1.patch

En caso que por algún motivo el parche no ha funcionado como esperábamos es posible revertirlo de la siguiente manera:

patch -p1 -R < 1327960-custom_breadcrumbs-fix-token-api-use-1.patch

 

Utilizando Git

Para utilizar este método debemos tener instalado Git en nuestro sistema, el primer paso es la descarga del parche en el directorio raíz de trabajo, en Linux se haría de la siguiente manera:

wget http://drupal.org/files/1327960-custom_breadcrumbs-fix-token-api-use-1.patch

A continuación aplicaremos el parche llamando al programa git vía terminal de la siguiente manera:

git apply -v 1327960-custom_breadcrumbs-fix-token-api-use-1.patch

Seguidamente para evitar que el archivo del parche se incluya en el sistema de versiones lo eliminados del directorio, en Linux seria de la siguiente manera:

rm 1327960-custom_breadcrumbs-fix-token-api-use-1.patch

En caso de que el parche no resultara como lo deseamos podemos revertir el cambio de la siguiente manera:

git checkout [filename]

En caso de ser necesario revertir todos los cambios del árbol deberíamos ejecutar el siguiente comando:

git reset --hard