Terminal vineri: Patch and Diff

Două dintre instrumentele esențiale în dezvoltarea de software sunt Plasture y Dif. Nu este un mister cum funcționează, dar cred că aceasta va fi o postare interesantă. 

Ambele sunt foarte puternice și acest lucru este la fel ca atingerea suprafeței, au mai multe utilități și alte funcții. Practic, cu aceste două instrumente putem crea controlul versiunilor,


Dif

Ne referim la comparație, compară un fișier „original” cu cel „nou” și ne informează despre diferențele care există între ele. Acest instrument ne permite, de asemenea, să creăm fișiere .patch pe care le folosim pentru a crea patch-uri pentru programele noastre.


Plasture

Este comanda cu care literalmente „patchem” fișierul original, adăugând și / sau eliminând linii conform instrucțiunilor conținute în fișierul .patch


Există, de asemenea, vimdiff, care este un instrument vizual pentru a aplica patch-uri fără a fi nevoie de un fișier .patch, deoarece compară „original” și „nou” și pe același fișier este posibil să editați linie cu linie sau întregul document. Nu voi explica acest lucru, dar cred că merită o mențiune.


exemplu

Acum distracția este. Exemplu!

Acesta este cazul, avem un scenariu grozav care vă cere numele și vârsta, dacă aveți peste 18 ani vă spune că puteți vota, altfel vă spune că nu puteți vota.

original.sh

#! / bin / bash echo "Introduceți-vă numele:" citiți numele echo "Introduceți vârsta dvs.:" citiți vârsta dacă [[18 -lt $ age]] atunci ecou "Bună $ nume, ești $ vechi și poți vota!" altfel ecou „Salut $ nume, ești $ vechi și nu poți vota ...” fi
Imagine a codului în Vim

Imagine a codului în Vim

Gata, iată scriptul care rulează:

Totul pare să funcționeze bine

Totul pare să funcționeze bine

Deci, ca utilizatori buni, suntem împărtășiți scriptul cu un prieten :), dar primim un mesaj care spune că are un defect, că atunci când are 18 ani spune că nu poate vota când ar trebui.

Eroare logică :(

Eroare de logică 

Acum începem să corectăm mica eroare și să facem câteva modificări ...

nou.sh

#! / bin / bash maxAge = 18 echo "Introduceți-vă numele:"; citește numele ecou „Scrie vârsta ta:”; citește vârsta dacă [[$ maxAge -le $ age]]; apoi ecou „Salut $ nume, ai $ ani și poți vota!” altfel ecou "Salut $ nume, ai $ ani și nu poți vota ..." fi ieșire 0
Cod nou scris în Vim

Cod nou scris în sevă

Să presupunem că scenariul este foarte greu. Deci, pentru a evita trimiterea din nou a întregului script, creăm un .patch 

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

Și acum avem patch-ul nostru. Iată o vedere asupra sevă:

Așa arată instrucțiunile pentru un patch. În alb liniile care nu au fost modificate, în albastru cele eliminate, în portocaliu cele adăugate.

Așa arată instrucțiunile pentru un patch. În alb liniile care nu au fost modificate, în albastru cele eliminate, în portocaliu cele adăugate.

Și pentru a-l aplica, folosim pur și simplu fișierul .patch din script pentru a fi corecți. Aici se numește originalAmigo.sh, care este o copie exactă a scriptului original.sh

Script prieten

Script prieten

$ patch originalFriend.sh <patch.patch

Și asta ne lasă dosarul nostru originalAmigo.sh Asa de:

Script prieten după aplicarea patch-ului

Script prieten după aplicarea patch-ului

După cum puteți vedea, este foarte ușor să obțineți diferențele și să aplicați patch-urile. Totul este de la mine.

Salutări oamenilor, vom citi vinerea viitoare.


Adăugați ca sursă preferată în Google