Ero sivun ”Patch” versioiden välillä
aiheesta muualla -> patchin käyttö |
Pb (keskustelu | muokkaukset) |
||
| Rivi 34: | Rivi 34: | ||
==Aiheesta muualla== | ==Aiheesta muualla== | ||
* [http://www.flug.fi/ohjeita/linux-ohjelmointi.html#patch | * [http://www.flug.fi/ohjeita/linux-ohjelmointi.html#patch Patch-käyttöohje] | ||
[[Luokka:Kehitystyökalut]] | [[Luokka:Kehitystyökalut]] | ||
[[Luokka:Komentorivin perustyökalut]] | [[Luokka:Komentorivin perustyökalut]] | ||
Versio 29. elokuuta 2009 kello 15.34
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.