Cómo crear parches de archivos

Un Solo Archivo

Así es como se crea un archivo de parche que luego se aplica en un sistema de destino para modificar uno de sus archivos.

Obtener copia original

cp /pathtofile/myfile.conf /pathtofile/myfile.conf.orig

Editar el archivo manualmente

Usando cualquier editor, realice manualmente los cambios que desee en el archivo /pathtofile/myfile.conf.

Captura la diferencia en un parche

diff -u /pathtofile/myfile.conf.orig /pathtofile/myfile.conf >myfile.patch

Prueba el parche

Deshaga los cambios manuales que realizó

patch -R -p0 <myfile.patch

Rehaga sus cambios

patch -p0 <myfile.patch

Directorio recursivo

En este ejemplo, capturamos todos los cambios que realizamos en un árbol de temas de pelícano en un único archivo de parche.

Duplicar

Comenzamos duplicando el árbol completo.

cp -r ${HOME}/pelican-themes ${HOME}/pelican-themes.orig

CONSEJO

Suelo conservar mi copia original y reutilizarla con frecuencia al modificar cosas. Para evitar de cambiar algo inadvertidamente dentro de la versión original sin darme cuenta, lo que perjudicaría las posibles diferencias posteriores, prefiero proteger los archivos .orig contra escritura.

Esto no es necesario, pero me ha servido.

chmod -w --recursive pelican-themes.orig/

Crear archivo de parche

Ya realizamos todos los cambios que queremos en el directorio pelican-themes. Una vez hecho esto, creamos el archivo de parche que incorpora todos los cambios.

cd ${HOME}/pelican-themes
diff -Naru ../pelican-themes.orig . > ../pelican-themes.patch

Nota:

-N --new-file Tratar los archivos ausentes como vacíos
-a --text tratar todos los archivos como texto
-r --recursive comparar subdirectorios recursivamente
-u -U --unified[=NUM] Emitir NUM líneas de contexto unificado (predeterminado 3)

Deshacer cambios

cd ${HOME}/pelican-themes
patch -Rs -p0 < ${HOME}/pelican-themes.patch

Nota:

Recuerde que los directorios creados por el parche deben eliminarse manualmente.
-R --reverse Supongamos que el parche se creó con archivos antiguos y nuevos intercambiados
-s --silent Estar mudo a menos que se produzca un error
-pN Elimina el prefijo de ruta de archivo más pequeño que contenga N barras. 0 significa todas.

Aplicar cambios de parche

cd ${HOME}/pelican-themes
patch -s -p0 < ${HOME}/pelican-themes.patch
Publicado el par Pierre Bernatchez dans «edición». Palabras clave: parche, actualización, revisión, modificación, corrección, diferencia, cómo