Terminalo penktadienis: Patch and Diff

Du esminiai programinės įrangos kūrimo įrankiai yra „Patch“ ir „Diff“ . Jų veikimo principas nėra paslaptis, bet manau, kad šis įrašas bus įdomus. 😉

Abi yra labai galingos, ir tai yra kaip prisilietimas prie paviršiaus, jos turi daugiau komunalinių paslaugų ir kitų funkcijų. Iš esmės naudodamiesi šiais dviem įrankiais galime sukurti versijų valdymą,


DIF

Mes remiamės palyginimu, jis palygina „originalų“ failą su „nauju“ ir informuoja mus apie egzistuojančius skirtumus. Šis įrankis taip pat leidžia mums sukurti .patch failus, kuriuos naudojame kurdami savo programų pataisas.


Pleistras

Tai komanda, kuria tiesiogine prasme „pataisome“ savo originalų failą, pridedant ir (arba) pašalinant eiles pagal instrukcijas, esančias .patch faile.


Taip pat yra „vimdiff“ – vaizdinis įrankis, skirtas pataisymams taikyti nereikalaujant .patch failo, nes jis palygina „originalią“ ir „naują“ versijas ir leidžia redaguoti eilutę po eilutės arba visą dokumentą tame pačiame faile. Neaiškinsiu to, bet manau, kad verta paminėti.


pavyzdys

Dabar smagu. Pavyzdys!

Tai yra tas atvejis, mes turime puikų scenarijų, kuriame prašoma jūsų vardo ir amžiaus. Jei esate vyresnis nei 18 metų, jums sakoma, kad galite balsuoti, kitaip - kad negalima balsuoti.

originalus.sh

#! / bin / bash echo "Įveskite savo vardą:" skaitykite vardą echo "Įveskite savo amžių:" skaitykite amžių, jei [[18 -lt $ amžius]], tada aidite "labas $ vardas, tu esi $ senas ir tu gali balsuoti!" dar vienas aidas „Sveikas, $ name, tu esi $ senas ir negali balsuoti ...“
Kodo vaizdas „Vim“

Kodo vaizdas „Vim“

Atlikta, čia yra vykdomas scenarijus:

Atrodo, kad viskas veikia gerai

Atrodo, kad viskas veikia gerai

Taigi, kaip geri vartotojai, kokie esame, mes dalinamės scenarijumi su draugu :), tačiau gauname pranešimą, kuriame sakoma, kad jis turi trūkumų, kad sulaukęs 18 metų jis negali balsuoti tada, kai turėtų.

Loginė klaida :(

Logikos klaida 

Dabar mes pradedame taisyti nedidelę klaidą ir atlikti keletą pakeitimų ...

naujas.sh

#! / bin / bash maxAge = 18 aidas "Įveskite savo vardą:"; perskaityti vardo atgarsį „Parašyk savo amžių:“; skaitymo amžius, jei [[$ maxAge -le $ age]]; tada aidėk: „Sveikas, $ name, tau $ metų ir tu gali balsuoti!“ dar vienas aidas "Hello $ name, you are $ old and you can't balsate ..." fi exit 0
Naujas kodas parašytas „Vim“

Naujas kodas, parašytas Vim kalba

Tarkime, scenarijus yra labai sunkus. Taigi, kad daugiau nesiųstume viso scenarijaus, sukuriame .patch 

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

Ir dabar turime savo pataisą. Štai vaizdas Vim programoje :

Taip atrodo .patch instrukcijos. Baltos spalvos buvo nemodifikuotos linijos, mėlynos - pašalintos, oranžinės - pridėtos.

Taip atrodo .patch instrukcijos. Baltos spalvos buvo nemodifikuotos linijos, mėlynos - pašalintos, oranžinės - pridėtos.

Norėdami jį pritaikyti, tiesiog naudojame pataisomo scenarijaus .patch failą. Čia jis vadinamas originalAmigo.sh ir yra tiksli original.sh scenarijaus kopija.

Draugo scenarijus

Draugo scenarijus

$ patch originalFriend.sh <patch.patch

Taigi, mūsų originalus „Amigo.sh“ failas atrodo taip:

Draugo scenarijus pritaikius pleistrą

Draugo scenarijus pritaikius pleistrą

Kaip matote, labai lengva gauti skirtumus ir užklijuoti pleistrus. Viskas iš manęs.

Sveikinimai žmonėms, skaitysime kitą penktadienį.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje