Skip to main content

Sådan appliceres en patch på en fil ved hjælp af Linux

UFC 229: Inside the Octagon - Khabib vs McGregor (April 2025)

UFC 229: Inside the Octagon - Khabib vs McGregor (April 2025)
Anonim

Denne vejledning giver et grundlæggende overblik for at anvende en patch på et program eller en fil.

Kommandoen bruges til at anvende patches er patch-kommandoen, men for at kunne anvende en patch skal diff-kommandoen også bruges til at levere de forskelle, der skal patches.

Hvorfor ville du oprette en patch

Forestil dig at du havde en HTML-fil som følger:

MySite

Velkommen til MySite

Ovenstående kilde, når den er indlæst i en webbrowser, viser ordene "Velkommen til MySite".

Det er almindeligt, når der programmeres for at være flere versioner af den samme fil. For eksempel ville der være en version, som er den aktuelle live-version, der ville være en anden version på udviklingsafdelingen, der kan indeholde flere ændringer, og endelig kan der være en anden version på en frigivelsesgren.

Udgivelsesgrenen ville være den version, der bruges af rigtige brugere (dvs. i dette tilfælde besøgende på MySite-webstedet). Lad os sige, at MySite er på version 1.0. Efter en udviklingsfase skaber du en frigivelsesgren, som i dette tilfælde ville være 1.1. Udviklingsgrenen ligger foran udgivelsesgrenen, fordi den kan indeholde ændringer, der ikke skyldes udgivelse i version 1,2, men vil være for version 1.1.

Forestil dig, at der var en fejl, hvorved MySite skulle kaldes YourSite. Du kunne gå til hver gren igen og foretage ændringer i den levende version, udviklingsversion og release version af dig kunne gøre ændringen som et hotfix i live og derefter anvende patchen til udvikling og frigivelse af filialer.

Et fungeret eksempel

Opret en fil kaldet myfile.html med følgende kode i den:

MySite

Velkommen til MySite

Dette er et bearbejdet eksempel på patching kildekoden.

Opret en anden fil kaldet myfile_v2.html med følgende kode i den:

AzDG

Velkommen til YourSite

Dette er et bearbejdet eksempel på patching kildekoden.

Den første fil er den oprindelige webside med overskriften "Velkommen til MySite". Den anden fil er den samme som den første fil, undtagen MyFile omdøbes til YourFile i teksten.

Sådan oprettes Diff-filen

For at oprette en patch skal vi udarbejde forskellene mellem myfile.html og myfile_v2.html.

Vi kan gøre dette med diff kommandoen som følger:

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

Du kan åbne myfile.patch-filen i nano-editoren som følger for at se den:

nano myfile.patch

Linjer, der er uændrede, vises i blåt. Linjer, der er fjernet, vises i rødt, og linjer, der er blevet tilføjet, vises i grøn.

Sådan appliceres patchen ved hjælp af kommandoen Patch

Hvis du vil anvende patchen på myfile.html, skal du bruge følgende kommando:

patch <myfile.patch

Sådan gendannes en patch

Dette vil anvende de ændringer, der er oprettet ved hjælp af diff-kommandoen til den oprindelige fil myfile.html.

Hvis du vil vende tilbage til patchen, så myfile.html er tilbage som den oprindeligt var, skal du bruge følgende kommando:

patch -R <myfile.patch

Resumé

Patch kommandoen kan bruges til at anvende patches på tværs af en hel mappestruktur.

Der er langt bedre værktøjer end patch-kommandoen til at skabe patches og sikre god kildekontrol.

Der er en grund til, at så mange udviklingsprojekter bruger GIT til kildekontrol. GIT gør det nemt at skabe en konsekvent forgreningsstrategi.

Patch kommandoen er ok for at anvende forskelle på et bash script eller noget simpelt, men du kan lige så nemt lave en sikkerhedskopi af de filer, du ønsker at patch, og simpelthen kopiere de nye filer til samme sted.

For mere information brug man kommandoen:

mand patch