Terminal vineri: Patch and Diff

Două dintre instrumentele esențiale în dezvoltarea de software sunt Plasture y Dif. Nu este un mister despre modul în care funcționează, dar cred că acesta va fi un post 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 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 nu trimite din nou întregul 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.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Xerix el a spus

    Super, mulțumesc mult 🙂

  2.   lame de înger el a spus

    Dacă doriți ceva culoare, vă rugăm să utilizați colordiff ^ __ ^

  3.   eliotime3000 el a spus

    Acum înțeleg cum funcționează patch-urile în Debian.

  4.   fer_pflores el a spus

    Bună ziua, știu că notificările de sistem pot fi afișate cu notificare-trimitere de pe consolă, dar ceea ce aș dori să fac este să pot programa la ce oră sau cât timp să îmi arăt o notificare, există vreo modalitate de a o face? Folosesc elementar, care se bazează pe Ubuntu 12.04, în caz că ajută, mulțumesc

    1.    plin de viață el a spus

      Ei bine, se poate face folosind sistemul cron 😉

      1.    fer_pflores el a spus

        și cum se poate face asta? Tocmai am aflat cum să folosesc comanda de notificare-trimitere

        1.    dezavantaj el a spus

          Puteți căuta cron aici în blog, există multe postări despre asta 🙂

  5.   Joaquin el a spus

    Foarte bine, multumesc!

  6.   dhunter el a spus

    Folosesc întotdeauna acest lucru pentru a actualiza kernel-ul, descarc doar patch-urile și mă aplic la surse, deci nu trebuie să descarc 80mb fiecare versiune.