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:
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:
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:
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. För att tillämpa patchen på myfile.html använd följande kommando: patch <myfile.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 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 Så här applicerar du korrigeringsfilen med hjälp av kommandot Patch
Så här återställer du en patch
Sammanfattning