Kód: Vybrat vše
kmarty@Kmartys-MBP /Applications % patch -p0 < winebottler.patch
patching file WineBottler.app/Contents/Frameworks/WBottler.framework/Versions/Current/Resources/bottler.sh
patching file WineBottler.app/Contents/Frameworks/WBottler.framework/Versions/Current/Resources/startwine.sh
kmarty@Kmartys-MBP /Applications %
Prikaz patch je soucasti OS (nebo je soucasti XCode command-line tools, ted nevim). Da se pouzit i balicek gpatch z Homebrew, ten obsahuje stejny prikaz.
diff/patch soubor vyrabim prikazem "diff -Naur puvodni_soubor_ci_adresar mnou_zmeneny_soubor_ci_adresar > moje_upravy.patch". Proste standardni "unified diff".
Jde to pouzit i pro rucni upravu, ale je to s prominutim opruz. Radky zacinajici "diff"(to muze uplne chybet), "---" a "+++" je neco jako hlavicka (co se porovnavalo, jak se jmenoval puvodni soubor a jak se bude jmenovat novy soubor), radky zacinajici "@@" je info o menenem bloku ve tvaru od ktere radky puvodniho souboru se zmeni kolik radek, od ktere radky noveho souboru bude zmeneno kolik radek s tim ze se pocitaji i ty kontrolni), nasleduji tri kontrolni radky* zacinajici mezerou (ktera ve skutecnem fajlu neni), pak je meneny blok, kde radka zacinajici "-" znamena co bude odstraneno, radka zacinajici "+" co bude pridano do noveho souboru, a pak jsou zase tri kontrolni radky. Kontrolni radky jsou vzdy okolo kazdeho meneneho bloku.
*) Prikaz patch se dokaze do urcite miry vyrovnat s tim ze cislo radku uplne presne neodpovida a k tomu pouziva kontrolni radky. Pokud cisla radku nesedi, ale patch se chytl, tak navic vypisuje neco jako:
Kód: Vybrat vše
Hunk #1 succeeded at 39 (offset 3 lines).
Kód: Vybrat vše
Hunk #1 FAILED at 36.
1 out of 5 hunks FAILED -- saving rejects to file ...