Dva su bitna alata u razvoju softvera zakrpa y Diff. Nije misterija kako funkcionišu, ali mislim da će ovo biti zanimljiv post.
Obje su vrlo moćne, a ovo je baš poput dodirivanja površine, imaju više uslužnih programa i drugih funkcija. U osnovi sa ova dva alata možemo stvoriti kontrolu verzija,
Diff
Pozivamo se na usporedbu, ona uspoređuje "originalnu" datoteku s "novom" i obavještava nas o razlikama koje postoje između njih. Ovaj alat također nam omogućuje stvaranje .patch datoteka koje koristimo za stvaranje zakrpa za naše programe.
zakrpa
To je naredba kojom doslovno "krpamo" svoju izvornu datoteku, dodajući i / ili uklanjajući linije u skladu s uputama u .patch datoteci
Takođe postoji vimdiff, koji je vizualni alat za primjenu zakrpa bez potrebe za .patch datotekom, jer uspoređuje "original" i "new", a na istoj datoteci moguće je uređivati redak po redak ili cijeli dokument. Ovo neću objašnjavati, ali mislim da to zaslužuje da se pomene.
Primjer
Sada je zabavno. Primjer!
To je slučaj, imamo sjajnu skriptu koja traži vaše ime i vaše godine; ako ste stariji od 18 godina, govori vam da možete glasati, u suprotnom vam govori da ne možete glasati.
original.sh
#! / bin / bash echo "Unesite svoje ime:" read name echo "Unesite svoje godine:" pročitajte godine ako [[18 -lt $ age]] onda echo "Zdravo $ name, imate $ godina i možete glasati! " else echo "Hello $ name, ti si $ star i ne možeš glasati ..." fi
Slika koda u Vim-u
Gotovo, evo pokrenute skripte:
Čini se da sve funkcionira u redu
Dakle, kao dobri korisnici kakvi jesmo, svoju skriptu dijelimo s prijateljem :), ali dobivamo poruku u kojoj se kaže da ima manu, da kada napuni 18 godina kaže da ne može glasati kada bi trebao.
Logička greška
Sada počinjemo ispravljati malu pogrešku i napraviti nekoliko izmjena ...
new.sh
#! / bin / bash maxAge = 18 echo "Unesite svoje ime:"; pročitajte eho imena "Napišite svoje godine:"; pročitati starost ako [[$ maxAge -le $ age]]; zatim odjeknite "Zdravo $ ime, imaš $ godina i možeš glasati!" else echo "Hello $ name, ti si $ star i ne možeš glasati ..." fi izlaz 0
Novi kôd napisan na jeziku energija
Pretpostavimo da je skripta veoma teška. Dakle, da ne bismo ponovo poslali cijelu skriptu, kreiramo .patch
$ diff -u original.sh new.sh> patch.patch
I sada imamo svoj flaster. Evo pogleda u energija:
Ovako izgledaju upute za .patch. U bijeloj su dodane linije koje nisu modificirane, u plavoj one uklonjene, u narančastoj.
A da bismo je primijenili, jednostavno koristimo datoteku .patch u skripti koju treba zakrpati. Ovdje se zove originalAmigo.sh, što je tačna kopija skripte original.sh
Prijateljska skripta
$ patch originalFriend.sh <patch.patch
I ovo nam ostavlja našu datoteku originalAmigo.sh Dakle:
Prijateljska skripta nakon primjene zakrpe
Kao što vidite, vrlo je lako dobiti razlike i primijeniti zakrpe. Sve je od mene.
Pozdrav ljudi, čitaćemo sljedeći petak.