diff og patch

Posted on 22.05.2006 by Kim N. Lesmer.
Dette er en mini tutorial i brugen af diff og patch.

Opret patch filen:

$ diff -u gammelfil.txt nyfil.txt > rettelser.diff

Brug patchen til at omdanne gammelfil.txt til nyfil.txt med:

$ patch gammelfil.txt rettelser.diff

Patch omdøber gammelfil.txt til gammelfil.txt.orig og gemmer den nye fil med rettelserne som gammelfil.txt. gammelfil.txt er nu identisk med nyfil.txt

Hvis man vil "reverse" processen kan det gøres med:

$ patch -R gammelfil.txt rettelser.diff

Her er gammelfil.txt den netop oprettede nye udgave af filen. Efter denne kommando vil gammelfil.txt og gammelfil.txt.orig være identisk.

Hvis den der har modtaget rettelserne sidder med filen gammefil.txt og rettelser.diff så kan han også patche sin fil sådan:

$ patch < rettelser.diff

I filen rettelser.diff kan patch læse, hvilke fil det drejer sig om, samt hvilke ændringer der skal udføres.

Processen kan vendes igen med:

$ patch -R < rettelser.diff

diff kan også bruges til at vise forskellen imellem indhold i mapper.

$ diff /home/user/foo /home/user/bar
Filerne foo//1.txt og bar//1.txt er forskellige
Kun i bar/: 2.txt
Kun i foo/: 3.txt