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
Gata, iată scriptul care rulează:
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 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 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.
Ș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
$ patch originalFriend.sh <patch.patch
Și asta ne lasă dosarul nostru originalAmigo.sh Asa de:
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.