Herramientas de usuario

Patch

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:

  1. lee original
  2. lee parche
  3. verifica diferencias con diff
  4. las escribe en original
    1. Si parche necesita llamar a otro archivo, con -p1 va a “avisar” y se detiene el proceso.
    2. Si original necesita llamar a un segundo parche, con -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)

Uso

Las siguientes instrucciones son una guía general sobre cómo generar y aplicar parches posteados.

Formato del nombre de fichero del parche

El formato esperado para los parches es:

Para las revisiones de git:
  • nombreherramienta-nombreparche-AAAAMMDD-HASHCORTO.diff
  • dwm-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.)

Para versiones release:

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.

generación del diff

Para usuarios de git:

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

Para tarballs:

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.

Emparchar un programa

Para tarballs

Se usa patch con los diff:

cd directorio-programa
patch -p1 < ruta/al/parche.diff

Para [[git]]

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
Para parches formateados con git format-patch
cd directorio-programa
git am ruta/al/parche.diff

Tipos de Patches

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.

Este sitio web utiliza cookies para guardar datos esenciales de su actividad, como su autenticación. Al entrar acepta el uso de cookies.

Más información