Pénteki terminál: Patch és Diff

A szoftverfejlesztés két alapvető eszköze a Patch és a Diff . Az, hogy hogyan működnek, nem rejtély, de szerintem ez egy érdekes bejegyzés lesz. 😉

Mindkettő nagyon erős, és ez pont olyan, mint a felület megérintése, több segédprogrammal és más funkcióval rendelkeznek. Alapvetően ezzel a két eszközzel létrehozhatunk verziószabályozást,


Diff

Összehasonlításra hivatkozunk, összehasonlít egy "eredeti" fájlt az "újval", és tájékoztat bennünket a közöttük fennálló különbségekről. Ez az eszköz lehetővé teszi számunkra .patch fájlok létrehozását is, amelyekkel javításokat hozunk létre programjainkhoz.


Tapasz

Ez az a parancs, amellyel szó szerint "foltozzuk" az eredeti fájlunkat, sorokat adunk hozzá és / vagy eltávolítunk a .patch fájl utasításainak megfelelően.


Létezik még a vimdiff is , egy vizuális eszköz a javítások alkalmazásához .patch fájl nélkül, mivel összehasonlítja az „eredeti” és az „új” verziókat, és lehetővé teszi soronkénti vagy akár a teljes dokumentum szerkesztését ugyanazon a fájlon belül. Ezt nem fogom elmagyarázni, de szerintem érdemes megemlíteni.


példa

Most a móka az. Példa!

Ez a helyzet, remek forgatókönyvünk van, amely a nevedet és az életkorodat kéri. Ha 18 évesnél idősebb vagy, akkor azt mondod, hogy szavazhatsz, különben azt mondod, hogy nem szavazhatsz.

eredeti.sh

#! / bin / bash echo "Írja be a nevét:" olvassa el a nevét echo "Írja be az életkorát:" olvassa el az életkorát, ha [[18 -lt $ kor]], akkor visszhangozza: "Hello $ név, te $ éves vagy, és szavazhatsz!" másképpen visszhangzik: "Hello $ név, te $ éves vagy, és nem tudsz szavazni ..." fi
A kód képe a Vim-ben

A kód képe a Vim-ben

Kész, itt van a futó szkript:

Úgy tűnik, minden rendben működik

Úgy tűnik, minden rendben működik

Tehát, mint jó felhasználók vagyunk, megosztjuk a szkriptünket egy barátommal :), de kapunk egy üzenetet, miszerint hibája van, hogy amikor 18 éves, azt mondja, hogy nem szavazhat, amikor kellene.

Logikai hiba :(

Logikai hiba 

Most elkezdjük kijavítani az apró hibát és néhány módosítást végrehajtani ...

új.sh

#! / bin / bash maxAge = 18 echo "Írja be a nevét:"; read name echo "Írja meg az életkorát:"; olvasási kor, ha [[$ maxAge -le $ age]]; majd visszhangozza: "Hello $ name, $ éves vagy, és szavazhatsz!" else visszhangozza a "Hello $ name, $ éves vagy, és nem tudsz szavazni ..." fi exit 0
Új kód a Vim-be írva

Új kód írva Vimben

Tegyük fel, hogy a forgatókönyv nagyon nehéz. Tehát, hogy ne küldjük el újra a teljes szkriptet, létrehozunk egy .patch 

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

És most már megvan a patchünk. Íme egy nézet Vimben :

Így néznek ki a .patch utasításai. Fehérben a nem módosított vonalak, kékben az eltávolítottak, narancssárgával a hozzáadott vonalak.

Így néznek ki a .patch utasításai. Fehérben a nem módosított vonalak, kékben az eltávolítottak, narancssárgával a hozzáadott vonalak.

Az alkalmazásához egyszerűen a javítandó szkriptben található .patch fájlt használjuk. Itt originalAmigo.sh néven fut , ami az original.sh szkript pontos másolata.

Friend script

Friend script

$ patch originalFriend.sh <patch.patch

Így az eredeti Amigo.sh fájlunk így néz ki:

Friend script a javítás alkalmazása után

Friend script a javítás alkalmazása után

Mint látható, nagyon könnyű megszerezni a diff-eket és felhelyezni a javításokat. Tőlem van minden.

Üdvözlet emberek, jövő pénteken olvassuk.


Hozzáadás előnyben részesített forrásként a Google-ben