Me gustaría crear un parche a partir de una gcc
rama específica comparándolo con los lanzamientos oficiales; Entonces, cuando descomprimo el archivo tar de la versión estable, puedo aplicar el parche y obtener el equivalente de lo que había en esa rama específica.
Es la primera vez que necesito crear un parche, así que es la primera vez que lo hago y mi principal preocupación es obtener las opciones y el análisis correcto, ya que estamos hablando de una pieza de software extremadamente importante.
diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch
¿Es esto suficiente y la mejor manera de hacerlo?
Respuesta1
Sí, esta es una buena forma de crear un parche.
En breve:
Para crear un parche para un solo archivo, su comando puede verse así
diff -Naru file_original file_updated > file.patch
dónde
-N
: trata los archivos ausentes como vacíos-a
: trata todos los archivos como texto-r
: compara recursivamente cualquier subdirectorio encontrado-u
: genera NUM (predeterminado 3) líneas de contexto unificado
Para crear un parche para todo el directorio:
diff -crB dir_original dir_updated > dfile.patch
dónde
-c
: genera NUM (predeterminado 3) líneas de contexto copiado-r
: compara recursivamente cualquier subdirectorio-B
: ignora los cambios cuyas líneas están todas en blanco
Después de todo, para aplicar este parche se puede ejecutar
patch -p1 --dry-run < dfile.patch
donde el conmutador p
le indica al parche que elimine el prefijo de ruta para que los archivos se identifiquen correctamente. En la mayoría de los casos debería ser así 1
.
Elimínelo --dry-run
si está satisfecho con el resultado impreso en la pantalla.
Respuesta2
Si desea comparar el último registro de git con alguna versión estable, simplemente vaya git diff the-stable-version
(tendrá que averiguar qué etiqueta lo describe, probablemente el número de versión exacto o alguna variante) en el repositorio. git
mantiene el historial completo del proyecto (normalmente, hay formas de obtener solo una parte). No importa si the-stable-version
está en alguna rama de desarrollo diferente (es decir, el desarrollo se bifurcó y la rama estable obtuvo algunas correcciones de último momento).