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:
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:
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:
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. Hvis du vil anvende patchen på myfile.html, skal du bruge følgende kommando: patch <myfile.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 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 Sådan appliceres patchen ved hjælp af kommandoen Patch
Sådan gendannes en patch
Resumé