Два найважливіші інструменти в розробці програмного забезпечення – це Patch та Diff . Як вони працюють, не є загадкою, але я думаю, що це буде цікава публікація. 😉
Обидва вони дуже потужні, і це так само, як торкання поверхні, вони мають більше службових програм та інших функцій. В основному за допомогою цих двох інструментів ми можемо створити контроль версій,
Різниця
Ми посилаємось на порівняння, він порівнює "оригінальний" файл з "новим" і повідомляє нам про відмінності, що існують між ними. Цей інструмент також дозволяє нам створювати файли .patch, які ми використовуємо для створення виправлень для наших програм.
пластир
Це команда, за допомогою якої ми буквально «виправляємо» наш оригінальний файл, додаючи та / або видаляючи рядки відповідно до інструкцій, що містяться у файлі .patch
Також існує vimdiff , візуальний інструмент для застосування патчів без потреби у файлі .patch, оскільки він порівнює «оригінальну» та «нову» версії та дозволяє редагувати рядок за рядком або весь документ в одному файлі. Я не буду це пояснювати, але думаю, що варто згадати.
приклад
Тепер задоволення є. Приклад!
Це так, у нас є чудовий сценарій, який запитує ваше ім’я та ваш вік; якщо вам більше 18, він повідомляє вам, що ви можете голосувати, інакше він повідомляє, що ви не можете голосувати.
оригінал.ш
#! / bin / bash echo "Введіть своє ім'я:" прочитайте ім'я echo "Введіть свій вік:" прочитайте вік, якщо [[18 -lt $ age]] потім echo "Привіт $ name, ви $ старі і можете голосувати! " else echo "Привіт $ ім'я, ти $ старий і не можеш голосувати ..." fi
Зображення коду у Vim
Готово, ось запущений сценарій:
Здається, все працює нормально
Отже, як хороші користувачі, якими ми є, ми ділимося своїм сценарієм з другом :), але ми отримуємо повідомлення про те, що у нього є недолік, що коли йому виповнилося 18, він говорить, що не може голосувати, коли повинен.
Логічна помилка
Тепер ми починаємо виправляти невелику помилку і вносити кілька модифікацій ...
new.sh
#! / bin / bash maxAge = 18 echo "Введіть своє ім'я:"; прочитати відлуння імені "Напишіть свій вік:"; прочитати вік, якщо [[$ $ maxAge -le $ age]]; потім луна "Привіт $ ім'я, тобі $ років, і ти можеш голосувати!" else echo "Hello $ name, you are $ old and you don't vote ..." fi вихід 0
Новий код, написаний у Vim
Припустимо, сценарій дуже важкий. Тож, щоб уникнути повторного надсилання всього сценарію, ми створюємо .patch
$ diff -u original.sh new.sh> patch.patch
А тепер у нас є наш патч. Ось як це виглядає у Vim :
Ось так виглядають інструкції до .patch. Білим - лінії, які не були змінені, синім - ті, що були видалені, оранжевим - додані.
Щоб застосувати його, ми просто використовуємо файл .patch у скрипті, який потрібно виправити. Тут він називається originalAmigo.sh і є точною копією скрипта original.sh .
Друг сценарій
$ patch originalFriend.sh <patch.patch
І це залишає наш оригінальний файл Amigo.sh таким:
Сценарій друга після застосування виправлення
Як бачите, отримати розбіжності та застосувати патчі дуже просто. Це все від мене.
Вітаємо людей, ми прочитаємо наступної п’ятниці.