Terminalni petek: Patch and Diff

Dve bistveni orodji pri razvoju programske opreme sta Patch y Razlikuj. Ni skrivnost, kako delujejo, vendar mislim, da bo to zanimiva objava. 

Oba sta zelo zmogljiva in to je tako kot dotikanje površine, imata več pripomočkov in drugih funkcij. V osnovi s temi dvema orodjema lahko ustvarimo nadzor različic,


Razlikuj

Sklicujemo se na primerjavo, primerja "izvirno" datoteko z "novo" in nas obvesti o razlikah, ki obstajajo med njimi. To orodje nam omogoča tudi ustvarjanje datotek .patch, ki jih uporabljamo za ustvarjanje popravkov za naše programe.


Patch

To je ukaz, s katerim dobesedno "zakrpamo" prvotno datoteko, dodamo in / ali odstranimo vrstice v skladu z navodili v datoteki .patch


Obstaja tudi vimdiff, ki je vizualno orodje za uporabo popravkov brez potrebe po datoteki .patch, saj primerja "izvirnik" in "nov", v isti datoteki pa je mogoče urejati vrstico za vrstico ali celoten dokument. Tega ne bom razlagal, vendar menim, da si zasluži omembo.


primer

Zdaj je zabava. Primer!

Tako je, imamo odličen skript, ki zahteva vaše ime in starost, če ste starejši od 18 let, vam sporoča, da lahko volite, sicer pa, da ne morete glasovati.

original.sh

#! / bin / bash echo "Vnesite svoje ime:" read name echo "Vnesite svojo starost:" read age if [[18 -lt $ age]] then echo "Pozdravljeni $ ime, stari ste $ in lahko glasujete! " else echo "Hello $ name, stari ste $ in ne morete glasovati ..." fi
Slika kode v Vim

Slika kode v Vim

Končano, tukaj je izvajani skript:

Zdi se, da vse deluje v redu

Zdi se, da vse deluje v redu

Torej, kot dobri uporabniki, kakršni smo, svoj skript delimo s prijateljem :), vendar dobimo sporočilo, da ima napako, da pri 18 letih pravi, da ne more glasovati, ko bi moral.

Logična napaka :(

Logična napaka 

Zdaj začnemo popravljati majhno napako in narediti nekaj sprememb ...

novo.sh

#! / bin / bash maxAge = 18 echo "Vpiši svoje ime:"; preberite odmev imena "Napišite svojo starost:"; preberite starost, če [[$ maxAge -le $ age]]; nato odmev "Pozdravljeni $ ime, stari ste $ let in lahko glasujete!" else echo "Pozdravljeni $ ime, stari ste $ let in ne morete glasovati ..." fi izhod 0
Nova koda napisana v Vim

Nova koda napisana v jeziku Vim

Recimo, da je scenarij zelo težak. Torej, da ne bi ponovno poslali celotnega skripta, ustvarimo .patch 

$ diff -u original.sh new.sh> patch.patch

In zdaj imamo svoj obliž. Tu pogled v Vim:

Takole so videti navodila za .patch. V beli črti, ki niso bile spremenjene, v modri tiste odstranjene, v oranžni dodane.

Takole so videti navodila za .patch. V beli črti, ki niso bile spremenjene, v modri tiste odstranjene, v oranžni dodane.

Za njegovo uporabo preprosto uporabimo datoteko .patch v skriptu, ki jo je treba popraviti. Tu se imenuje originalAmigo.sh, ki je natančna kopija skripta original.sh

Prijateljski scenarij

Prijateljski scenarij

$ patch originalFriend.sh <patch.patch

In to nam pušča naš spis originalAmigo.sh Torej:

Prijateljski skript po uporabi popravka

Prijateljski skript po uporabi popravka

Kot lahko vidite, je zelo enostavno dobiti razlike in uporabiti popravke. Vse je od mene.

Lep pozdrav ljudem, bomo brali prihodnji petek.


Dodaj kot prednostni vir v Googlu