Javítás alkalmazása egy fájlra Linux használatával
A javítás a számítógépes kód egy szegmense, amely beilleszt vagy módosít egy meglévő kódkészletet. A javításokat általában a programozási folyamat során használják a forráskód módosításainak helyettesítésére. Linux patchutilityt tartalmaz a folyamat egyszerűsítésére.
A javítási folyamatot jellemzően formális változásvezérlő rendszerekben használják, ahol a kódminőség és a tesztelés professzionális legjobb gyakorlatai érvényesülnek. A foltozást ritkábban használják hobbiprojektekben, ahol a forráskód a programozó belátása szerint változik.
A foltozási folyamat
Egy tipikus használati esetben az Ön eredeti verziója van forráskód és annak módosított változata. Az eredetit hivatalosan jóváhagyták, és minden változtatásnak jól meghatározott folyamatot kell követnie. Ezek a változások a javítási fájlban történnek.
nevű eszköz segítségével diff, csökkentse a két fájlverzió közötti különbségeket egyetlen fájlra, amely felsorolja azokat a konkrét változtatásokat, amelyeket a második az elsőn hajt végre.
Ezután az eredményül kapott különbségfájl módosítja az eredeti kódot a tapasz eszköz.
Patchek alkalmazása: példa
Vegyünk egy tipikus „Hello World” programot. A forrás kód C-ben így néz ki:
#beleértve
int main()
{
printf("Szervusz világ!");
}
A nyomtatott üzenet módosításához Helló univerzum!, dolgozza ki a kód alternatív verzióját az alábbiak szerint:
#beleértve
int main()
{
printf("Helló univerzum!");
}
Hozzon létre egy javítófájlt a diff hasznosság:
diff -u helloworld.c helloworld2.c > file.patch.
Ezután látni fogja, hogy a javítófájl így néz ki:

A javítófájl felsorolja az összes összehasonlított fájlt. Jelképeket kínál, és +++, amely minden fájlnevet az utolsó felülvizsgált dátummal azonosít. Ezután összefoglalja a pár közötti változások helyét @@ szimbólumok. Végül felsorolja a forráskódot, megjelölve a különböző sorokat a plusz és mínusz jelekkel. Általában a mínusz jel azt jelzi, hogy a sor el lett távolítva a javított fájlból, a plusz jel pedig cserét jelent, ha a sor le lesz cserélve.
A javítófájl eredeti fájlra való alkalmazásához hajtsa végre a következőt:
patch < fájl.patch.
Ekkor az első fájl megváltozik, hogy megfeleljen a másodiknak.
A javítás visszavonásához használja a -R választási lehetőség:
patch -R < file.patch.
Megfontolások
A forráskód javításának ez a megközelítése kevésbé elterjedt, mint korábban. A modern forrásvezérlő rendszerek, mint például a Git és a Subversion, idővel automatikusan kezelik a verziókat, beleértve a különféle változatokat is fejlesztési és tesztelési ágak, így a kézi különbség-ellenőrzést és a fájljavítást mostantól a verzióvezérlő kezeli eszköz. Ha formális kódolási struktúrát kell követnie, vagy meg kell felelnie a csapatkódolási szabványoknak, akkor helyette olyan eszközt kell használnia, mint a Git.
Azonban egy hatékony felhasználási eset a diff és tapasz rendszer egy helyi gépen egy teljes fájlkönyvtár módosításához kapcsolódik. Például, ha létrehozott egy webhelyet, de csak egyetlen sort kell módosítania – például egy szerzői jogi sort –, akkor ez a rendszer egyszerre frissíti az összes oldalt.
Tekintse meg a man-oldalakat tapasz további kontextushoz.