Skip to main content

Hoe een patch op een bestand toe te passen met behulp van Linux

StarTrek 25th Anniversary Video Game Playthrough Complete Golden Oldies (April 2025)

StarTrek 25th Anniversary Video Game Playthrough Complete Golden Oldies (April 2025)
Anonim

Deze handleiding biedt een basisoverzicht voor het toepassen van een patch op een programma of bestand.

De opdracht die wordt gebruikt voor het toepassen van patches is de opdracht patch, maar om een ​​patch toe te passen, moet de opdracht diff ook worden gebruikt om de verschillen op te leveren die moeten worden gepatcht.

Waarom zou je een patch maken?

Stel je voor dat je een HTML-bestand had als volgt:

Mijn website

Welkom bij MySite

De bovenstaande bron, wanneer geladen in een webbrowser, toont de woorden "Welkom bij MySite".

Het is gebruikelijk om te programmeren voor meerdere versies van hetzelfde bestand. Er zou bijvoorbeeld een versie zijn die de huidige live versie is, er zou een andere versie op de ontwikkelingstak zijn die meerdere wijzigingen zou kunnen bevatten, en tenslotte zou er een andere versie op een releasetak kunnen zijn.

De releasetak zou de versie zijn die wordt gebruikt door echte gebruikers (d.w.z. in dit geval bezoekers van de MySite-website). Laten we zeggen dat MySite op versie 1.0 staat. Na een ontwikkelingsfase maak je een releasetak die in dit geval 1.1 is. De ontwikkelingstak loopt voor op de releasetak omdat deze mogelijk wijzigingen bevat die niet voor versie 1.2 beschikbaar zijn, maar voor versie 1.1.

Stel je voor dat er een bug was waardoor MySite YourSite zou moeten heten. Je zou om beurten naar elk filiaal kunnen gaan en wijzigingen in de liveversie, de ontwikkelversie en de releaseversie van je kunnen maken om de wijziging als een hotfix in live te maken en de patch vervolgens op de ontwikkel- en releasestructuren toepassen.

Een bewerkt voorbeeld

Maak een bestand met de naam myfile.html met de volgende code erin:

Mijn website

Welkom bij MySite

Dit is een goed voorbeeld van het patchen van broncode.

Maak een ander bestand met de naam myfile_v2.html met de volgende code erin:

Jouw site

Welkom bij YourSite

Dit is een goed voorbeeld van het patchen van broncode.

Het eerste bestand is de originele webpagina met de kop "Welkom bij MySite". Het tweede bestand is hetzelfde als het eerste bestand, behalve dat MyFile in de tekst is hernoemd naar YourFile.

Hoe het Diff-bestand te maken

Om een ​​patch te maken, moeten we de verschillen tussen myfile.html en myfile_v2.html berekenen.

We kunnen dit als volgt doen met het commando diff:

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

U kunt het bestand myfile.patch als volgt in de nano-editor openen om het te bekijken:

nano mijnbestand.patch

Lijnen die ongewijzigd zijn, worden blauw weergegeven. Lijnen die zijn verwijderd, worden in het rood weergegeven en de regels die zijn toegevoegd, worden groen weergegeven.

Hoe de patch toe te passen met behulp van de patchopdracht

Als u de patch op myfile.html wilt toepassen, gebruikt u de volgende opdracht:

patch <mijnbestand.patch

Hoe een patch terug te zetten

Hiermee worden de wijzigingen toegepast die met de opdracht diff zijn gemaakt op het oorspronkelijke bestand myfile.html.

Als u de patch wilt terugzetten zodat myfile.html terug is zoals het oorspronkelijk was, gebruikt u de volgende opdracht:

patch -R <mijnbestand.patch

Samenvatting

De opdracht patch kan worden gebruikt om patches toe te passen op een hele directorystructuur.

Er zijn veel betere tools dan de patchopdracht voor het maken van patches en zorgen voor een goede broncontrole.

Er is een reden dat zoveel ontwikkelingsprojecten GIT gebruiken voor bronbesturing. GIT maakt het eenvoudig om een ​​consistente vertakkingsstrategie te creëren.

De patch-opdracht is in orde voor het toepassen van verschillen op een bash-script of iets eenvoudigs, maar je kunt net zo gemakkelijk een back-up maken van de bestanden die je wilt patchen en de nieuwe bestanden gewoon naar dezelfde plek kopiëren.

Gebruik de opdracht man voor meer informatie:

man patch