Termināla piektdiena: Patch and Diff

Divi svarīgi programmatūras izstrādes rīki ir Patch un Diff . To darbības princips nav noslēpums, bet es domāju, ka šis būs interesants ieraksts. 😉

Abi ir ļoti spēcīgi, un tas ir tāpat kā pieskaršanās virsmai, tiem ir vairāk utilītu un citu funkciju. Būtībā ar šiem diviem rīkiem mēs varam izveidot versiju kontroli,


Atšķirība

Mēs atsaucamies uz salīdzinājumu, tas salīdzina "oriģinālo" failu ar "jauno" un informē mūs par atšķirībām, kas starp tām pastāv. Šis rīks arī ļauj mums izveidot .patch failus, kurus izmantojam, lai izveidotu mūsu programmu ielāpus.


plāksteris

Tā ir komanda, ar kuru mēs burtiski "ielāpām" savu sākotnējo failu, pievienojot un / vai noņemot rindas saskaņā ar instrukcijām, kas ietvertas .patch failā


Ir arī vimdiff — vizuāls rīks ielāpu lietošanai bez .patch faila, jo tas salīdzina "oriģinālo" un "jauno" versiju un ļauj rediģēt rindiņu pa rindiņai vai visu dokumentu vienā failā. Es to nepaskaidrošu, bet domāju, ka ir vērts pieminēt.


piemērs

Tagad jautrība ir. Piemērs!

Tas tā ir, mums ir lielisks skripts, kurā tiek prasīts jūsu vārds un jūsu vecums. Ja jums ir vairāk nekā 18 gadu, tas jums saka, ka jūs varat balsot, pretējā gadījumā tas norāda, ka jūs nevarat balsot.

oriģināls.sh

#! / bin / bash echo "Ievadiet savu vārdu:" lasīt vārdu atbalss "Ievadiet savu vecumu:" lasīt vecumu, ja [[18 -lt $ vecums]], tad atbalss "Sveiks $ vārds, tu esi $ vecs un vari balsot! " cits atbalss "Sveiks $ vārds, tu esi $ vecs un nevari balsot ..." fi
Vim koda attēls

Vim koda attēls

Gatavs, šeit ir skripts, kas darbojas:

Šķiet, ka viss darbojas labi

Šķiet, ka viss darbojas labi

Tā kā mēs esam labi lietotāji, mēs kopīgojam savu scenāriju ar draugu :), bet mēs saņemam ziņojumu, kurā teikts, ka tam ir trūkums, ka tad, kad viņam ir 18, viņš saka, ka nevar balsot, kad vajadzētu.

Loģikas kļūda :(

Loģikas kļūda 

Tagad mēs sākam labot nelielu kļūdu un veikt dažas izmaiņas ...

jauns.sh

#! / bin / bash maxAge = 18 atbalss "Ievadiet savu vārdu:"; lasīt vārdu atbalss "Uzraksti savu vecumu:"; lasīt vecumu, ja [[$ maxAge -le $ vecums]]; tad atbalss "Sveiks $ vārds, tev ir $ gadi un tu vari balsot!" cits atbalss "Sveiks $ vārds, tu esi $ vecs un tu nevari balsot ..." fi izeja 0
Jauns kods ierakstīts Vim

Jauns kods, kas rakstīts Vim valodā

Pieņemsim, ka skripts ir ļoti smags. Tātad, lai vēlreiz nenosūtītu visu skriptu, mēs izveidojam .patch 

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

Un tagad mums ir ielāps. Lūk, skats programmā Vim :

Šādi izskatās .patch instrukcijas. Baltajās līnijās, kas netika modificētas, zilā krāsā - noņemtās, oranžajā krāsā - pievienotās.

Šādi izskatās .patch instrukcijas. Baltajās līnijās, kas netika modificētas, zilā krāsā - noņemtās, oranžajā krāsā - pievienotās.

Lai to lietotu, mēs vienkārši izmantojam ielāpojamā skripta .patch failu. Šeit to sauc par originalAmigo.sh , kas ir precīza original.sh skripta kopija.

Drauga skripts

Drauga skripts

$ patch originalFriend.sh <patch.patch

Un tas atstāj mūsu sākotnējo Amigo.sh failu šādi:

Drauga skripts pēc plākstera lietošanas

Drauga skripts pēc plākstera lietošanas

Kā redzat, ir ļoti viegli iegūt diffus un uzlikt plāksterus. Tas viss ir no manis.

Sveicieni cilvēkiem, mēs lasīsim nākamajā piektdienā.


Pievienot kā vēlamo avotu pakalpojumā Google