To af de vigtige værktøjer i softwareudvikling er patch y Diff. Det er ikke et mysterium, hvordan de fungerer, men jeg tror, dette vil være et interessant indlæg. 🙂
Begge er meget kraftfulde, og det er ligesom at røre ved overfladen, de har flere hjælpeprogrammer og andre funktioner. Dybest set med disse to værktøjer kan vi oprette versionskontrol,
Diff
Vi henviser til sammenligning, den sammenligner en "original" fil med den "nye" og informerer os om de forskelle, der findes mellem dem. Dette værktøj giver os også mulighed for at oprette .patch-filer, som vi bruger til at oprette programrettelser til vores programmer.
patch
Det er kommandoen, hvormed vi bogstaveligt talt "lapper" vores originale fil, tilføjer og / eller fjerner linjer i henhold til instruktionerne i .patch-filen.
Der er også vimdiff, som er et visuelt værktøj til at anvende programrettelser uden behov for en .patch-fil, da den sammenligner "original" og "ny", og på samme fil er det muligt at redigere linje for linje eller hele dokumentet. Dette vil jeg ikke forklare, men jeg synes, det fortjener en omtale.
Ejemplo
Nu er det sjovt. Eksempel!
Dette er tilfældet, vi har et godt script, der beder om dit navn og din alder. Hvis du er over 18 år, fortæller det dig, at du kan stemme, ellers fortæller det dig, at du ikke kan stemme.
original.sh
#! / bin / bash ekko "Indtast dit navn:" læs navn ekko "Indtast din alder:" læs alder hvis [[18 -lt $ alder]] så ekko "Hej $ navn, du er $ gammel og du kan stemme!" ellers ekko "Hej $ navn, du er $ gammel og kan ikke stemme ..." fi
Udført, her er det kørende script:
Så som gode brugere, vi er, deler vi vores script med en ven :), men vi får en besked om, at det har en fejl, at når det er 18, står det, at det ikke kan stemme, når det skal.
Nu begynder vi at rette den lille fejl og foretage et par ændringer ...
new.sh
#! / bin / bash maxAge = 18 echo "Indtast dit navn:"; læse navn ekko "Skriv din alder:"; læs alder hvis [[$ maxAge -le $ age]]; derefter ekko "Hej $ navn, du er $ år gammel, og du kan stemme!" ellers ekko "Hej $ navn, du er $ gammel, og du kan ikke stemme ..." fi exit 0
Antag at manuskriptet er meget tungt. Så for ikke at sende hele scriptet igen opretter vi en .patch 😀
$ diff -u original.sh new.sh> patch.patch
Og nu har vi vores plaster. Her en visning i vim:
Og for at anvende det bruger vi simpelthen .patch-filen i scriptet, der skal patches. Her kaldes originalAmigo.sh, som er en nøjagtig kopi af scriptet original.sh
$ patch originalFriend.sh <patch.patch
Og dette efterlader os vores fil originalAmigo.sh Så:
Som du kan se er det meget let at få diffs og anvende plasterne. Det hele kommer fra mig.
Hilsen folk, vi læser næste fredag.
Fantastisk, meget tak 🙂
Hvis du vil have nogle farver, skal du bruge colordiff ^ __ ^
Nu forstår jeg, hvordan programrettelser fungerer i Debian.
Hej, jeg ved, at systemmeddelelser kan vises med notify-send fra konsollen, men hvad jeg gerne vil gøre er at være i stand til at planlægge, hvornår eller hvor længe jeg skal vise mig en meddelelse, er der nogen måde at gøre det på? Jeg bruger elementær, som er baseret på Ubuntu 12.04, hvis det hjælper tak
Nå, det kan gøres ved hjælp af systemet cron 😉
og hvordan kan det gøres? Jeg lærte næsten ikke, hvordan man bruger kommandoen notify-send
Du kan søge efter cron her i bloggen, der er mange indlæg om det 🙂
Meget godt tak!
Jeg bruger altid dette til at opdatere kernen, jeg downloader kun patches og gælder for kilderne, så jeg behøver ikke downloade 80 MB hver udgivelse.