Ero sivun ”Diff” versioiden välillä

Siirry navigaatioon Siirry hakuun
489 merkkiä lisätty ,  19. maaliskuuta 2016
ei muokkausyhteenvetoa
p (siirsi sivun ”Tissit” uudelleenohjauksen ”Diff” päälle: kumoa)
Ei muokkausyhteenvetoa
 
(11 välissä olevaa versiota 6 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Diff on komentoriviohjelma, jolla voidaan vertailla kahta eri tiedostoa. Tavallisimpia käyttökohteita on esimerkiksi [[:Luokka:Ohjelmistokehitys|ohjelmistokehityksessä]] eri versioiden vertailu. Lisäksi diffiä hyödynnetään mm. [[patch|korjauspaketeissa]] ja [[versionhallintajärjestelmä|versionhallintaohjelmissa]]
{{DISPLAYTITLE:{{lcfirst:{{PAGENAME}}}}}}
'''diff''' on [[komentorivi]]ohjelma, jolla voidaan vertailla kahta eri tiedostoa. Tavallisimpia käyttökohteita on esimerkiksi [[:Luokka:Kehitystyökalut|ohjelmistokehityksessä]] eri versioiden vertailu. Lisäksi diffiä hyödynnetään mm. [[patch|korjauspaketeissa]], [[versionhallintajärjestelmä|versionhallintaohjelmissa]] sekä [[asetustiedostojen perusteet|asetustiedostojen]] ja ylipäätänsä tekstimuotoisten tiedostojen vertailussa.


== Peruskäyttö ==
diff perustuu rivien vertailuun, joten se ei sovellu dataan, jossa rivit ovat hyvin pitkiä tai missä rivien järjestys, rivinvaihdot tai rivien sisältö vaihtuu vertailun kannalta mielivaltaisesti.
 
==Peruskäyttö==
Tehdään aluksi kaksi [[C]]-kielistä tiedostoa, esimerkiksi
Tehdään aluksi kaksi [[C]]-kielistä tiedostoa, esimerkiksi
hello.c
hello.c
#include <stdio.h>
<source lang="C">
void main() {
#include <stdio.h>
  printf("Hello word");
void main() {
}
    printf("Hello word");
}
</source>
Ja
Ja
hello2.c
hello2.c
#include <stdio.h>
<source lang="C">
int main() {
#include <stdio.h>
  printf("Hello world");
int main() {
  return 0;
    printf("Hello world");
}
    return 0;
}
</source>
Esimerkissä uuteen hello2.c-versioon korjattiin kirjoitusvirhe rivillä 3 ja lisättiin funktio palauttamaan 0. Näitä voitaisiin nyt vertailla komennolla
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
  diff hello.c hello2.c
Rivi 27: Rivi 34:
< 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.
< 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 <tt>diff hello.c hello2.c -u</tt> antaisi tulosteen
Vivulla -u diffin tulosteen saa monipuolisemmaksi ja selkeämmäksi. Esimerkkitapauksessamme <tt>diff -u hello.c hello2.c</tt> antaisi tulosteen
  --- hello.c      2006-04-07 10:05:08.000000000 +0000
  --- hello.c      2006-04-07 10:05:08.000000000 +0000
  +++ hello2.c      2006-04-07 10:12:47.000000000 +0000
  +++ hello2.c      2006-04-07 10:12:47.000000000 +0000
Rivi 54: Rivi 61:
  }
  }


 
==Hakemistojen vertailu==
== Hakemistojen vertailu ==
Diff osaa yksittäisten tiedostojen lisäksi vertailla myös kokonaisia hakemistoja. Tällöin käytetään vipua -r (recursive). Hakemistoja vertaillessa diff käy läpi kaikki hakemistojen tiedostot myös alihakemistoista.
Diff osaa yksittäisten tiedostojen lisäksi vertailla myös kokonaisia hakemistoja. Tällöin käytetään vipua -r (recursive). Hakemistoja vertaillessa diff käy läpi kaikki hakemistojen tiedostot myös alihakemistoista.


== Katso myös ==
==Katso myös==
*[[Patch]]
*[[Patch]]
 
*[[TkDiff]] on graafinen tiedostojen ja kansioiden vertailuun käytettävä apuohjelma.
==Aiheesta muualla==
*[[Meld]] on graafinen tiedostojen ja kansioiden vertailuun käytettävä apuohjelma.
* FLUG:in [http://www.flug.fi/ohjeita/linux-ohjelmointi.html#diff Diff-ohje] Linux-ohjelmointioppaassa.
*[[Beyond Compare]]


[[Luokka:Komentorivin perustyökalut]]
[[Luokka:Komentorivin perustyökalut]]
[[Luokka:Kehitystyökalut]]
[[Luokka:Tiedostojen vertailua]]

Navigointivalikko