Reede terminal: Patch ja Diff

Kaks olulist tööriista tarkvaraarenduses on Patch ja Diff . Nende tööpõhimõte pole küll saladus, aga ma arvan, et see postitus saab olema huvitav. 😉

Mõlemad on väga võimsad ja see on just nagu pinna puudutamine, neil on rohkem utiliite ja muid funktsioone. Põhimõtteliselt saame nende kahe tööriista abil luua versioonihalduse,


Erinevus

Me viidame võrdlusele, see võrdleb "algset" faili uue failiga ja teavitab meid nende vahelistest erinevustest. See tööriist võimaldab meil luua ka .patch-faile, mida kasutame oma programmidele plaastrite loomiseks.


Plaaster

See on käsk, millega sõna otseses mõttes "lappime" oma algse faili, lisades ja / või eemaldades ridu vastavalt failis .patch sisalduvatele juhistele


Samuti on olemas vimdiff , visuaalne tööriist paranduste rakendamiseks ilma .patch-faili vajamata, kuna see võrdleb "algset" ja "uut" versiooni ning võimaldab teil rida-realt või kogu dokumenti samas failis redigeerida. Ma ei hakka seda selgitama, aga ma arvan, et see on mainimist väärt.


näide

Nüüd on lõbus. Näide!

See on nii, meil on suurepärane skript, mis küsib teie nime ja vanust. Kui olete üle 18-aastane, ütleb see teile, et võite hääletada, vastasel juhul ütleb see, et te ei saa hääletada.

originaal.sh

#! / bin / bash echo "Sisestage oma nimi:" loe nime kaja "Sisestage oma vanus:" loe vanust, kui [[18 -lt $ vanus]] siis kaja "Tere $ nimi, sa oled $ vana ja saad hääletada!" muidu kaja "Tere $ nimi, sa oled $ vana ja ei saa hääletada ..." fi
Vimis oleva koodi pilt

Vimis oleva koodi pilt

Valmis, siin on töötav skript:

Tundub, et kõik töötab hästi

Tundub, et kõik töötab hästi

Nii et kui head kasutajad oleme, jagame oma skripti sõbraga :), kuid saame teate, milles öeldakse, et sellel on viga, et kui ta on 18, ütleb ta, et ei saa hääletada, kui peaks.

Loogikaviga :(

Loogika viga 

Nüüd hakkame väikest viga parandama ja mõned muudatused tegema ...

uus.sh

#! / bin / bash maxAge = 18 kaja "Sisestage oma nimi:"; loe nimekaja "Kirjuta oma vanus:"; loe vanust, kui [[$ maxAge -le $ vanus]]; siis kaja "Tere $ nimi, sa oled $ aastane ja saad hääletada!" muidu kaja "Tere $ nimi, sa oled $ aastane ja sa ei saa hääletada ..." fi exit 0
Uus kood on kirjutatud Vim-is

Vimis kirjutatud uus kood

Oletame, et skript on väga raske. Seega, et mitte kogu skripti uuesti saata, loome .patch 

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

Ja nüüd on meil paigatud. Siin on vaade Vimis :

Nii näevad välja .paigutamise juhised. Valges muudetud read, sinises eemaldatud read, oranžis lisatud read.

Nii näevad välja .paigutamise juhised. Valges muudetud read, sinises eemaldatud read, oranžis lisatud read.

Selle rakendamiseks kasutame lihtsalt parandatavas skriptis olevat .patch-faili. Siin nimetatakse seda originalAmigo.sh ja see on original.sh -skripti täpne koopia .

Sõbra skript

Sõbra skript

$ patch originalFriend.sh <patch.patch

Ja see jätab meie algse Amigo.sh faili selliseks:

Sõbra skript pärast plaastri rakendamist

Sõbra skript pärast plaastri rakendamist

Nagu näete, on diffide hankimine ja plaastrite paigaldamine väga lihtne. See kõik on minu päralt.

Tervitades inimesi, loeme järgmisel reedel.


Lisa eelistatud allikana Google'is