Terminaalin perjantai: Patch and Diff

Kaksi olennaista työkalua ohjelmistokehityksessä ovat Patch ja Diff . Niiden toimintatapa ei ole mysteeri, mutta uskon, että tästä tulee mielenkiintoinen postaus. 😉

Molemmat ovat erittäin tehokkaita, ja tämä on kuin koskettaa pintaa, niillä on enemmän apuohjelmia ja muita toimintoja. Pohjimmiltaan näillä kahdella työkalulla voimme luoda versionhallinnan,


Ero

Viitataan vertailuun, se vertaa "alkuperäistä" tiedostoa "uuteen" ja ilmoittaa meille niiden välillä olevista eroista. Tämän työkalun avulla voimme myös luoda .patch-tiedostoja, joita käytämme ohjelmien korjaustiedostojen luomiseen.


läikkä

Se on komento, jolla kirjaimellisesti "korjaamme" alkuperäisen tiedostomme lisäämällä ja / tai poistamalla rivejä .patch-tiedoston ohjeiden mukaisesti.


On myös olemassa vimdiff , visuaalinen työkalu korjausten asentamiseen ilman .patch-tiedostoa, sillä se vertailee "alkuperäistä" ja "uutta" versiota ja antaa sinun muokata rivi riviltä tai koko dokumenttia samassa tiedostossa. En selitä tätä, mutta mielestäni se on mainitsemisen arvoinen.


esimerkki

Nyt hauskaa on. Esimerkki!

Näin on, meillä on loistava käsikirjoitus, joka pyytää nimesi ja ikäsi. Jos olet yli 18-vuotias, se kertoo sinulle, että voit äänestää, muuten se kertoo, että et voi äänestää.

alkuperäinen.sh

#! / bin / bash echo "Kirjoita nimesi:" lue nimi echo "Anna ikäsi:" lue ikä, jos [[18 -lt $ ikä]] sitten kaiku "Hei $ nimi, olet $ vanha ja voit äänestää! " muuten kaiku "Hei $ nimi, olet $ vanha ja et voi äänestää ..." fi
Kuva koodista Vimissä

Kuva koodista Vimissä

Valmis, tässä on käynnissä oleva komentosarja:

Kaikki näyttää toimivan hyvin

Kaikki näyttää toimivan hyvin

Joten hyvinä käyttäjinä olemme, jaamme käsikirjoituksemme ystävän kanssa :), mutta saamme viestin, jossa sanotaan, että siinä on virhe, että kun hän on 18, se sanoo, että se ei voi äänestää, kun sen pitäisi.

Looginen virhe :(

Logiikkavirhe 

Alamme nyt korjata pienen virheen ja tehdä muutamia muutoksia ...

uusi.sh

#! / bin / bash maxAge = 18 kaiku "Kirjoita nimesi:"; read name echo "Kirjoita ikäsi:"; lukuikä, jos [[$ maxAge -le $ age]]; sitten kaiku "Hei $ nimi, olet $ vuotta vanha ja voit äänestää!" muuten kaiku "Hei $ nimi, olet $ vuotta vanha ja et voi äänestää ..." fi exit 0
Uusi koodi kirjoitettu Vimiin

Vimillä kirjoitettu uusi koodi

Oletetaan, että käsikirjoitus on erittäin raskas. Joten, jotta vältytään lähettämästä koko skriptiä uudelleen, luomme .patch 

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

Ja nyt meillä on paikkauksemme. Tässä on näkymä Vimissä :

Tältä näyttää .patch-ohjeet. Valkoisina viivat, joita ei ollut muokattu, sinisellä poistetut, oranssilla lisätyt.

Tältä näyttää .patch-ohjeet. Valkoisina viivat, joita ei ollut muokattu, sinisellä poistetut, oranssilla lisätyt.

Sen käyttämiseksi käytämme yksinkertaisesti korjattavan skriptin .patch-tiedostoa. Tässä sitä kutsutaan nimellä originalAmigo.sh , joka on täydellinen kopio original.sh -skriptistä.

Friend-skripti

Friend-skripti

$ patch originalFriend.sh <patch.patch

Ja tämä jättää alkuperäisen Amigo.sh -tiedostomme näyttämään tältä:

Friend-komentosarja korjaustiedoston asentamisen jälkeen

Friend-komentosarja korjaustiedoston asentamisen jälkeen

Kuten näette, on erittäin helppo saada diff ja kiinnittää laastarit. Se on kaikki minulta.

Tervehdys ihmiset, luemme ensi perjantaina.


Lisää ensisijaiseksi lähteeksi Googlessa