User Tools

Site Tools


doc:appunti:prog:patch

Patch micro-HOWTO

Come creare un file patch

Supponiamo di avere due directory chiamate rispettivamente originale e nuova. Per produrre un file patch con le differenze tra le due si esegue dalla directory parent:

diff -Naur originale nuova > file.patch

Le opzioni passate al diff dicono di gestire anche i file nuovi, trattare tutto come file di testo, stampare alcune righe di contesto e scendere ricorsivamente nelle directory. Il file risultante sarà qualcosa di simile a:

diff -Naur originale/genpowerd.c nuova/genpowerd.c
--- originale/genpowerd.c  2005-01-04 23:15:35.000000000 +0100
+++ nuova/genpowerd.c      2006-07-01 17:16:04.000000000 +0200
@@ -86,6 +86,9 @@

 static char    *upstype = NULL;

+/* Program to exec() just before killing the inverter. */
+static char    *exec_program = NULL;
+
 #if defined (__linux__) && !defined (NEWINIT)
 /* Create a flag file for Miquel van Smoorenburg
...
...

Come applicare una patch

Supponiamo di avere i file originali nella directory originale, dalla directory parent si esegue:

$ patch -p0 < file.patch
patching file originale/genpowerd.c

I file verranno modificati direttamente dentro la directory originale, quindi si deve fare attenzione a non eseguire il comando due volte. Il comando patch comunque dovrebbe intercettare la previously applied patch e dare un avviso.

doc/appunti/prog/patch.txt · Last modified: 2006/10/24 07:34 by 127.0.0.1