Ero sivun ”Diff” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(perusteet)
(ei mitään eroa)

Versio 7. huhtikuuta 2006 kello 10.25

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ä