Ero sivun ”Patch” versioiden välillä
(→Aiheesta muualla: Poistettu linkki, joka antaa "Sivua ei löydy".) |
Ei muokkausyhteenvetoa |
||
Rivi 1: | Rivi 1: | ||
{{DISPLAYTITLE:patch}} | |||
{{Ohjelma | |||
| nimi=GNU patch | |||
| kuva= | |||
| kuvateksti= | |||
| lisenssi=[[GPL]]v3+ | |||
| käyttöliittymä=teksti | |||
| kotisivu=[https://savannah.gnu.org/projects/patch/ savannah.gnu.org/projects/patch] | |||
}} | |||
== Käyttö == | '''patch''' on [[:Luokka:Kehitystyökalut|ohjelmistokehityksessä]] käytetty työkalu, jolla voidaan päivittää tiedosto uuteen versioon jos saatavilla on uuden ja vanhan version erot sisältävä [[diff]]-tiedosto. | ||
==Käyttö== | |||
Esimerkiksi [[diff]]-artikkelissa mainitussa esimerkissä meillä on seuraavanlainen <tt>hello.c</tt>-tiedosto: | Esimerkiksi [[diff]]-artikkelissa mainitussa esimerkissä meillä on seuraavanlainen <tt>hello.c</tt>-tiedosto: | ||
#include <stdio.h> | #include <stdio.h> | ||
Rivi 30: | Rivi 40: | ||
Huomaa myös, että patch ei lue patch-tiedoston sisältöä, vaan se välitetään sille syötteenä <-[[Komentorivin perusteet|ohjausmerkin]] avulla. | Huomaa myös, että patch ei lue patch-tiedoston sisältöä, vaan se välitetään sille syötteenä <-[[Komentorivin perusteet|ohjausmerkin]] avulla. | ||
== Katso myös == | ==Katso myös== | ||
*[[ | *[[diff]] | ||
[[Luokka:Kehitystyökalut]] | [[Luokka:Kehitystyökalut]] | ||
[[Luokka:Komentorivin perustyökalut]] | [[Luokka:Komentorivin perustyökalut]] |
Versio 1. heinäkuuta 2014 kello 11.24
GNU patch | |
---|---|
Käyttöliittymä | teksti |
Lisenssi | GPLv3+ |
Kotisivu | savannah.gnu.org/projects/patch |
patch on ohjelmistokehityksessä käytetty työkalu, jolla voidaan päivittää tiedosto uuteen versioon jos saatavilla on uuden ja vanhan version erot sisältävä diff-tiedosto.
Käyttö
Esimerkiksi diff-artikkelissa mainitussa esimerkissä meillä on seuraavanlainen hello.c-tiedosto:
#include <stdio.h> void main() { printf("Hello word"); }
Lisäksi sitä on vertailtu tiedostoon hello2.c komennolla diff -u hello.c hello2.c > hello1to2.diff ja saatu seuraavanlainen sisältö tiedostoon hello1to2.diff:
--- 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; }
Kun nämä tiedostot nyt ovat samassa hakemistossa, voidaan hello.c patchata uuteen 2-versioon yksinkertaisesti patchilla:
patch -p0 < hello1to2.diff
Jonka jälkeen hello.c:n sisältö olisi seuraava:
#include <stdio.h> int main() { printf("Hello world"); return 0; }
Aivan kuten sen kuuluukin olla. Komennossa valitsin -p0 kertoo diffille, että patchattavat tiedostot (tai tässä tapauksessa yksi tiedosto) ovat samassa hakemistossa kuin patch-tiedosto. Jos patchissa viitattaisiin joissain hakemistoissa oleviin tiedostoihin, esimerkiksi tiedostoon hello/hello.c, voisimme käskeä patchia jättämään yhden hakemistoista huomiotta vivulla -p1. Tämä on hyödyllinen etenkin jos hakemistojen nimet muuttuvat.
Huomaa myös, että patch ei lue patch-tiedoston sisältöä, vaan se välitetään sille syötteenä <-ohjausmerkin avulla.