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
Kész, itt van a futó szkript:
Ú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
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 í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.
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
$ 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
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.