Skip to main content

Så här applicerar du en patch till en fil som använder Linux

Gifs With Sound #228 (Maj 2025)

Gifs With Sound #228 (Maj 2025)
Anonim

Den här guiden ger en grundläggande översikt för att applicera en patch på ett program eller en fil.

Kommandot som används för att applicera patchar är patch-kommandot, men för att kunna använda en patch måste diff-kommandot också användas för att tillhandahålla skillnaderna som behöver patchas.

Varför skulle du skapa en patch

Tänk dig att du hade en HTML-fil enligt följande:

Min sida

Välkommen till MySite

Ovanstående källa, när den laddas i en webbläsare, visar orden "Välkommen till MySite".

Det är vanligt när man programmerar för att det ska finnas flera versioner av samma fil. Till exempel skulle det finnas en version som är den nuvarande levande versionen, det skulle finnas en annan version på utvecklingsgrenen som kan innehålla flera ändringar. Slutligen kan det finnas en annan version på en release-gren.

Utgivningsgrenen skulle vara den version som användes av reella användare (det vill säga i detta fall besökare på MySite-webbplatsen). Låt oss säga att MySite är på version 1.0. Efter en utvecklingsfas skapar du en frigivningsgren som skulle vara i detta fall 1.1. Utvecklingsgrenen ligger före utgivningsgrenen, eftersom den kan innehålla ändringar som inte beror på release i version 1,2 men kommer att vara för version 1.1.

Tänk dig att det var ett fel där MySite skulle kallas YourSite. Du kan gå till varje gren i sin tur och göra ändringar i den levande versionen, utvecklingsversionen och release versionen av dig kan göra ändringen som en snabbkorrigering i live och sedan applicera korrigeringsfilen till utveckling och släppning av filialer.

Ett fungerat exempel

Skapa en fil som heter myfile.html med följande kod i den:

Min sida

Välkommen till MySite

Detta är ett fungerat exempel på kollision av källkod.

Skapa en annan fil som heter myfile_v2.html med följande kod i den:

Din sida

Välkommen till YourSite

Detta är ett fungerat exempel på kollision av källkod.

Den första filen är den ursprungliga webbsidan med rubriken "Välkommen till MySite". Den andra filen är densamma som den första filen, förutom att MyFile omdirigeras till YourFile i texten.

Så här skapar du Diff-filen

För att skapa en patch måste vi utreda skillnaderna mellan myfile.html och myfile_v2.html.

Vi kan göra detta med diff-kommandot enligt följande:

diff -u myfile.html myfile_v2.html> myfile.patch

Du kan öppna myfile.patch-filen i nano-redigeraren enligt följande för att visa den:

nano myfile.patch

Linjer som är oförändrade visas i blått. Linjer som har tagits bort visas i rött och linjer som har lagts till visas i grönt.

Så här applicerar du korrigeringsfilen med hjälp av kommandot Patch

För att tillämpa patchen på myfile.html använd följande kommando:

patch <myfile.patch

Så här återställer du en patch

Detta gäller de ändringar som skapats med diff-kommandot till den ursprungliga filen myfile.html.

Om du vill återställa patchen så att myfile.html är tillbaka till det sätt som det var ursprungligen, använd följande kommando:

patch -R <myfile.patch

Sammanfattning

Patchkommandot kan användas för att applicera korrigeringar över en hel katalogstruktur.

Det finns mycket bättre verktyg än patch-kommandot för att skapa patchar och säkerställa god källkontroll.

Det finns anledning att så många utvecklingsprojekt använder GIT för källkontroll. GIT gör det enkelt att skapa en konsekvent förgreningsstrategi.

Patchkommandot är ok för att tillämpa skillnader på ett bash-skript eller något enkelt men du kan lika lätt skapa en säkerhetskopia av filerna du vill patchera och helt enkelt kopiera de nya filerna till samma plats.

För mer information använd mankommandot:

man lapp