Tempo di lettura: < 1 minuto

Può capitare di lavorare in team ad un sorgente e quando questo viene modificato, è necessario aggiornare gli altri membri della squadra delle modifiche fatte.

Un metodo è quello di passare l’intero sorgente, ma risalta subito un problema: se qualcun altro sta lavorando sullo stesso file, come farà a distinguere le righe aggiunte, modificate o eliminate senza intaccare il proprio lavoro?

Nei sistemi Unix-derivati abbiamo a disposizione `diff` un programma in grado di trovare le differenze tra due file, e ricavare quindi un file patch che permette di individuare facilmente le modifiche.

Per procedere è necessario avere una copia dei file originali e una copia di quelli modificati, quindi eseguire:

$ diff -u file1.orig file1.new >> patch.diff

per ogni coppia di files. Se i sorgenti sono in 2 cartelle separate è possibile fare un diff ricorsivo con questa sintassi:

$ diff -ru dir.orig dir.new >> patch.diff

con l’ultima sintassi si crea un unico file di patch con tutte le differenze tra i sorgenti.

Grazie a ayin per le correzioni 🙂

Applicazione di patch

Per maggiori informazioni, consultate le pagine di manuale, scrivendo sul terminale:

$ man diff

Per applicare velocemente una patch è sufficiente usare:

$ patch -p0 test.txt patch.diff

Per maggiori informazioni, consultate le pagine di manuale, scrivendo sul terminale:

$ man patch