Un claro ejemplo de la necesidad de emplear esta herramienta puede ser el siguiente: imaginemos que anualmente actualizamos la versión de una determinada aplicación a través del código fuente. El fichero de configuración puede cambiar ligeramente de una versión a otra, pero puede haber ciertos parámetros de configuración que siempre sean los mismos para nosotros y no nos interese modificarlos.
Lo que podemos hacer ante esta situación es generar un parche el cual posteriormente podremos utilizar para parchear las futuras actualizaciones de dicho fichero de configuración.
Vamos a ver todo esto con un sencillo ejemplo. Tenemos dos ficheros, file1 (archivo original) y file2 (archivo modificado) con el siguiente contenido:
[root@centos ~]# cat file1
Hoy es Lunes
[root@centos ~]# cat file2
Hoy es Martes
Para generar el parche ejecutaríamos el comando diff con la opción -u:
[root@centos ~]# diff -u file1 file2 > file.patch
[root@centos ~]# cat file.patch
--- file1 2010-01-21 15:14:08.000000000 +0100
+++ file2 2010-01-21 15:14:42.000000000 +0100
@@ -1 +1 @@
-Hoy es Lunes
+Hoy es Martes
Ahora vamos a suponer que tenemos un tercer fichero con el siguiente contenido:
[root@centos ~]# cat file3
Hoy es Lunes
No me gustan los Lunes
Y queremos parchearlo con el archivo que hemos creado previamente. El resultado sería el siguiente:
[root@centos ~]# patch file3 < file.patch
patching file file3
[root@centos ~]# cat file3
Hoy es Martes
No me gustan los Lunes
Por último, decir que si queremos anular un parche previamente aplicado emplearemos la opción -R.
[root@centos ~]# patch -R file3 < file.patch
patching file file3
[root@centos ~]# cat file3
Hoy es Lunes
No me gustan los Lunes
Utilizando el man pueden verse las múltiples opciones de los comandos diff y patch.
No comments:
Post a Comment