¿Es esta una buena manera de crear un parche?

Me gustaría crear un parche desde una twig específica de gcc comparándolo con las versiones oficiales; así que cuando desempaque el tarball del lanzamiento estable, puedo aplicar el parche y get el equivalente de lo que estaba en esa twig específica.

Es la primera vez que necesito crear un parche, por lo que es la primera vez que hago esto y mi principal preocupación es tener las opciones y el análisis correctos, ya que estamos hablando de una pieza extremadamente importante de software.

 diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch 

¿Es esto suficiente y la mejor manera de hacerlo?

Sí, esta es una buena forma de crear un parche.

En breve:

  1. Para crear un parche para un solo file, su command puede parecerse

    diff -Naru file_original file_updated > file.patch

    dónde

    • -N : trata los files ausentes como vacíos
    • -a : trata todos los files como text
    • -r : compara recursivamente cualquier subdirectory encontrado
    • -u : salida NUM (valor pnetworkingeterminado 3) líneas de context unificado
  2. Para crear un parche para todo el directory:

    diff -crB dir_original dir_updated > dfile.patch

    dónde

    • -c : salida NUM (valor pnetworkingeterminado 3) líneas de context copydo
    • -r : compara recursivamente cualquier subdirectory
    • -B : ignora los cambios cuyas líneas están todas en blanco

Después de todo, para aplicar este parche uno puede ejecutar

 patch -p1 --dry-run < dfile.patch 

donde el interruptor p ordera al parche que elimine el prefijo de ruta para que los files se identifiquen correctamente. En la mayoría de los casos, debería ser 1 .

Quite --dry-run si está satisfecho con el resultado impreso en la pantalla.