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:

Javítófájl Linux alatt

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.