Twee van de essentiële tools bij softwareontwikkeling zijn Patch y Diff. Het is geen mysterie hoe ze werken, maar ik denk dat dit een interessante post zal zijn.
Beide zijn erg krachtig, en dit is nog maar het begin, ze hebben meer hulpprogramma's en andere functies. In principe kunnen we met deze twee tools versiebeheer creëren,
Diff
We verwijzen naar vergelijking, het vergelijkt een "origineel" bestand met het "nieuwe" en informeert ons over de verschillen die er tussen bestaan. Met deze tool kunnen we ook .patch-bestanden maken die we gebruiken om patches voor onze programma's te maken.
Patch
Het is het commando waarmee we letterlijk ons originele bestand "patchen", door regels toe te voegen en / of te verwijderen volgens de instructies in het .patch-bestand
Er is ook vimdiff, wat een visueel hulpmiddel is om patches toe te passen zonder dat er een .patch-bestand nodig is, aangezien het "origineel" en "nieuw" vergelijkt en het in hetzelfde bestand mogelijk is om regel voor regel of het hele document te bewerken. Dit zal ik niet uitleggen maar ik denk dat het een vermelding verdient.
Ejemplo
Nu is het leuk. Voorbeeld!
Dit is het geval, we hebben een geweldig script dat naar je naam en je leeftijd vraagt, als je ouder bent dan 18, staat er dat je kunt stemmen, anders staat er dat je niet kunt stemmen.
origineel.sh
#! / bin / bash echo "Voer uw naam in:" lees naam echo "Voer uw leeftijd in:" lees leeftijd als [[18 -lt $ leeftijd]] en echo "Hallo $ naam, u bent $ oud en u kunt stemmen!" anders echo "Hallo $ naam, je bent $ oud en je kunt niet stemmen ..." fi
Afbeelding van de code in Vim
Klaar, hier is het lopende script:
Alles lijkt goed te werken
Dus, als goede gebruikers die we zijn, delen we ons script met een vriend :), maar we krijgen een bericht dat het een fout heeft, dat wanneer het 18 is, het zegt dat het niet kan stemmen wanneer het zou moeten.
Logische fout
Nu beginnen we de kleine fout te corrigeren en een paar wijzigingen aan te brengen ...
nieuw.sh
#! / bin / bash maxAge = 18 echo "Voer uw naam in:"; lees naam echo "Schrijf je leeftijd:"; leeftijd lezen als [[$ maxAge -le $ age]]; echo dan "Hallo $ naam, je bent $ jaar oud en je kunt stemmen!" anders echo "Hallo $ naam, je bent $ jaar oud en je kunt niet stemmen ..." bv exit 0
Nieuwe code geschreven in Vim
Stel dat het script erg zwaar is. Om te voorkomen dat het hele script opnieuw wordt verzonden, maken we een .patch
$ diff -u origineel.sh nieuw.sh> patch.patch
En nu hebben we onze patch. Hier is een mening over Vim:
Dit is hoe de instructies voor een .patch eruit zien. In wit de lijnen die niet zijn gewijzigd, in blauw de lijnen die zijn verwijderd, in oranje die zijn toegevoegd.
En om het toe te passen, gebruiken we gewoon het .patch-bestand in het script dat moet worden gepatcht. Hier wordt geroepen origineelAmigo.sh, wat een exacte kopie is van het script origineel.sh
Vriend script
$ patch originalFriend.sh <patch.patch
En dit laat ons ons dossier achter origineelAmigo.sh Zo:
Vriend-script na het toepassen van patch
Zoals je kunt zien, is het heel gemakkelijk om de diffs te krijgen en de patches toe te passen. Het is allemaal van mij.
Groeten mensen, gaan we aanstaande vrijdag lezen.