Patch es un programa originalmente escrito por Larry Well em 1984, que sirve para aplicar parches a través de los diff de los archivos.
El programa patch:
-p1 va a “avisar” y se detiene el proceso.-p1 va a “avisar” y se detiene el proceso(estas opciones admiten escenarios algo más complejos, hay más opciones, esto es lo básico)
Las siguientes instrucciones son una guía general sobre cómo generar y aplicar parches posteados.
El formato esperado para los parches es:
nombreherramienta-nombreparche-AAAAMMDD-HASHCORTO.diffdwm-todasubase-20160617-3465bed.diff
La fecha AAAAMMDD debe corresponder a la última vez que el parche ha sido modificado. Aquí HASHCORTO son los siete caracteres del hash corto del commit de git que corresponden al último commit de la herramienta en la cual el parche puede ser aplicado y funciona correctamente. Puede obtenerlo tomando los primeros siete caracteres del hash completo, o por ejemplo:
git rev-parse --short <commit-id>
…(con commit-id: HEAD, commit hash, etc.)
nombreherramienta-nombreparche-RELEASE.diff dwm-todasubase-6.1.diff
El RELEASE debe corresponder a la versión de lanzamiento de la herramienta, por ejemplo 6.1 para dwm-6.1.
cd directorio-programa git add filechanges... git commit #(redactar una descripción clara del parche) git format-patch --stdout HEAD^ > nombreherramienta-nombreparche-AAAAMMDD-HASHCORTO.diff
cd directorio-programa-modificado/.. diff -up directorio-programa-original directorio-programa-modificado > nombreherramienta-nombreparche-RELEASE.diff
No envíe múltiples conjuntos de parches para múltiples commits; un solo parche debe aplicar todos los cambios al usar el comando patch -p1.
Se usa patch con los diff:
cd directorio-programa patch -p1 < ruta/al/parche.diff
Los usuarios de git, deben usar la opción -3 para corregir el conflicto fácilmente:
cd directorio-de-programa git apply ruta/a/parche.diff
cd directorio-programa git am ruta/al/parche.diff
Existen dos tipos de parches, los que se adecúan a su gusto personal, y aquellos que piensa que deben incluirse en el troncal principal de desarrollo.
Para los parches que se adecúan a su gusto personal y desea compartir con la comunidad, por favor siga las instrucciones comunitarias.
Para los parches que deben incluirse en el troncal principal de desarrollo (“mainline”), debe consultarse laa página comunitaria y lista de correo.
Por favor provea un mensaje de envío (“commit message”) claro y conciso para sus parches.