En ocasiones es necesario extender o corregir el funcionamiento de alguno de los módulos de terceros que completan una instalación del core de drupal, si nuestro código es suficientemente genérico como para incluirlo en el módulo original, podemos enviar un parche a la cola de issues.
Basándome en este post de la gente de NodeOne, y en la ayuda de jonhattan y manuee os dejo dos alternativas para generar parches en drupal, voy a usar el módulo views en su versión 3 como ejemplo, substituid nombre y versión por el que estéis parcheando.
Usando drush + cvs "de toda la vida"
- drush dl views-6.x-3.x --package-handler=cvs
- Integramos nuestros cambios en la versión de desarrollo del módulo.
- cvs diff -u > nombre_del_parche.patch
Explicación: El comando drush nos descarga la última versión de desarrollo del módulo que estamos parcheando (si quereis poner otra, simplemente cambiad los numeros por los que salen en la página del proyecto). La opción --package-handler=cvs nos permite descargar la última versión de desarrollo que haya en el CVS de Drupal.
Con cvs diff generamos las diferencias entre lo que hemos integrado y el módulo en su última versión.
Usando drush + git porque nos sentimos más modernos
- drush dl views-6.x-3.x --package-handler=cvs
- cd views
- git init
- git add *
- git commit -m "Initial version"
- Integramos nuestros cambios en la versión de desarrollo
- git diff > nombre_del_parche.patch
Explicación: git nos permite crear repositorios locales al vuelo, eso es lo que hacemos con git init, con los comandos add y commit consolidamos en nuestro repositorio local el proyecto que nos descargamos con drush. Al integrar nuestros cambios, git diff es capaz de diferenciar nuestros cambios de la versión original y generar el parche.
Podéis encontrar más detalles sobre el concepto de parches en la sesión "Parches y bugs, de que va todo eso?" que se realizó en la drupalcamp Spain 2010.