Diff

Wikipedia
Loikkaa: valikkoon, hakuun

UNIXin diff-käsky vertailee kahta tiedostoa ja antaa tulokseksi muutostiedoston. Vertailu kahden version välillä tehdään riveittäin. Oletuksena diff huomioi kaikki muutokset tiedostoon, mukaan lukien muutokset tyhjeessä, mutta tarvittaessa diff käskyn voi komentaa olemaan huomioimatta muutoksia tyhjemerkkien määrässä.

patch-käsky on diff-käskyyn liittyvä työkalu, joka tuottaa tiedostosta uuden version, kun lähtötietoina on muutostiedosto ja alkuperäinen versio. patch osaa tehdä muutostiedoston kuvaaman muutoksen myös käänteisesti; uusi versio ja muutostiedosto alkuperäisestä uudempaan versioon tuottavat alkuperäisen version.

Diffin tuottamaa tiedostomuotoa käytetään lähes jokaisessa versionhallintajärjestelmässä joka on suunnattu ohjelmointiin UNIX-ympäristössä.

Esimerkit[muokkaa | muokkaa wikitekstiä]

Kahden tiedoston vertailu diff käskyllä voisi antaa tällaisen tulostuksen:

# diff -u tiedosto1 tiedosto2
--- tiedosto1   2006-05-01 12:01:35.000000000 +0300
+++ tiedosto2   2006-05-01 12:02:00.000000000 +0300
@@ -1,4 +1,4 @@
 Evoluution mekanismeja ovat muun muassa luonnonvalinta, mutaatiot ja
-migraatio. Teorian mukaan luonnonvalinta johtaa population parempaan 
+migraatio. Teorian mukaan luonnonvalinta johtaa populaation parempaan 
 sopeutumiseen ympäristöönsä, sillä menestyneimmistä yksilöistä tulee 
 lopulta vallitseva tyyppi populaatiossa tehokkaamman lisääntymisen myötä.

Tulostuksesta nähdään, että muutos tiedostojen välillä on kirjoitusvirheen korjaus.

Tässä käytettiin -u-vipua, joka luo unified diff -tulosteen. Tämä muoto on laajempi ja sisältää muutaman rivin ennen ja jälkeen muutetun rivin.

Jos käyttäjällä on vanha versio tiedostosta hallussaan ja hän saa muutostiedoston kohti uudempaa, voi hän käyttää patch-käskyä tuottamaan uudemman version:

# patch tiedosto1 < muutostiedosto
patching file tiedosto1

Minkä jälkeen tiedosto1 on sama kuin tiedosto2 (edellisen esimerkin mukaan).

Katso myös[muokkaa | muokkaa wikitekstiä]