Два основна алата у развоју софтвера су Patch и Diff . Како функционишу није мистерија, али мислим да ће ово бити занимљив пост. 😉
Обоје су врло моћни, а ово је баш попут додиривања површине, имају више услужних програма и других функција. У основи са ова два алата можемо створити контролу верзија,
Дифф
Позивамо се на поређење, он упоређује „оригиналну“ датотеку са „новом“ и обавештава нас о разликама које постоје између њих. Овај алат такође нам омогућава да креирамо .патцх датотеке које користимо за креирање закрпа за наше програме.
Закрпа
То је команда којом дословно "крпамо" оригиналну датотеку, додајући и / или уклањајући редове у складу са упутствима садржаним у .патцх датотеци
Ту је и vimdiff , визуелни алат за примену закрпа без потребе за .patch датотеком, јер упоређује „оригиналну“ и „нову“ верзију и омогућава вам да уређујете ред по ред или цео документ унутар исте датотеке. Нећу ово објашњавати, али мислим да вреди поменути.
пример
Сада је забава. Пример!
То је случај, имамо сјајну скрипту која тражи ваше име и ваше године, ако сте старији од 18 година, говори вам да можете гласати, у супротном вам говори да не можете гласати.
оригинал.сх
#! / бин / басх ецхо "Унесите своје име:" реад наме ецхо "Унесите своје године:" прочитајте старост ако [[18 -лт $ аге]] онда ецхо "Здраво $ име, имате $ година и можете гласати!" елсе ецхо "Здраво $ име, ти си $ стар и не можеш да гласаш ..." фи
Слика кода у Вим-у
Готово, ево покренуте скрипте:
Чини се да све функционише у реду
Дакле, као добри корисници какви јесмо, своју скрипту делимо са пријатељем :), али добијамо поруку у којој се каже да има ману, да када напуни 18 година каже да не може гласати када би требало.
Логичка грешка
Сада почињемо да исправљамо малу грешку и вршимо неколико модификација ...
ново.ш
#! / бин / басх макАге = 18 ецхо "Унесите своје име:"; прочитајте име ецхо "Напишите ваше године:"; прочитати старост ако [[$ макАге -ле $ аге]]; затим одјекните "Здраво $ име, имаш $ година и можеш гласати!" елсе ецхо "Здраво $ име, ти си $ стар и не можеш гласати ..." фи излаз 0
Нови код написан у Виму
Претпоставимо да је сценарио веома тежак. Дакле, да бисмо избегли поновно слање целе скрипте, креирамо .патцх
$ дифф -у оригинал.сх нев.сх> патцх.патцх
И сада имамо наш патч. Ево како изгледа у Виму :
Овако изгледају упутства за .патцх. У белој црти линије које нису измењене, у плавој оне уклоњене, у наранџастој оне додате.
Да бисмо га применили, једноставно користимо .patch датотеку у скрипти коју треба закрпити. Овде се зове originalAmigo.sh , што је тачна копија original.sh скрипте.
Пријатељска скрипта
$ патцх оригиналФриенд.сх <патцх.патцх
И ово оставља наш оригиналниAmigo.sh фајл оваквим:
Скрипта пријатеља након примене закрпе
Као што видите, врло је лако добити разлике и применити закрпе. Све је од мене.
Поздрав људи, читаћемо следећи петак.