Diff
Diff on komentoriviohjelma, jolla voidaan vertailla kahta eri tiedostoa. Tavallisimpia käyttökohteita on esimerkiksi ohjelmistokehityksessä eri versioiden vertailu. Diffiä hyödynnetään esimerkiksi subversion-versionhallinnassa.
Peruskäyttö
Tehdään aluksi kaksi C-kielistä tiedostoa, esimerkiksi hello.c
#include <stdio.h>
void main() {
printf("Hello word");
}
Ja helllo2.c
#include <stdio.h>
int main() {
printf("Hello world");
return 0;
}
Esimerkissä uuteen hello2.c-versioon korjattiin kirjoitusvirhe rivillä 3 ja lisättiin funktio palauttamaan 0. Näitä voitaisiin nyt vertailla komennolla
diff hello.c hello2.c
Diffin tuloste olisi seuraavanlainen
2,3c2,4
< void main() {
< printf("Hello word");
---
> int main() {
> printf("Hello world");
> return 0;
< tarkoittaa, että rivi poistui ja > tarkoittaa uutta riviä. Tulosteesta nähdään että alkuperäisen tiedoston rivit 2-3 korvaantuivat viivan alla olevilla uusilla riveillä 2-4.
Vivulla -u diffin tulosteen saa monipuolisemmaksi ja selkeämmäksi. Esimerkkitapauksessamme diff hello.c hello2.c -u antaisi tulosteen
--- hello.c 2006-04-07 10:05:08.000000000 +0000
+++ hello2.c 2006-04-07 10:12:47.000000000 +0000
@@ -1,5 +1,6 @@
#include <stdio.h>
-void main() {
- printf("Hello word");
+int main() {
+ printf("Hello world");
+ return 0;
}
Aluksi nähdään tiedostojen nimet ja niiden viimeiset muokkausajat. Varsinainen tuloste on selkeä, + rivin edessä tarkoittaa lisättyä riviä ja - poistettua. Nyt diff näyttää myös muutaman rivin muutoskohdan ympäriltä mikä selkeyttää tulostetta.
Katso myös
Linkkejä
- FLUG:in Diff-ohje Linux-ohjelmointioppaassa.