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