Два основных инструмента при разработке программного обеспечения: Патчи y Разница. Не секрет, как они работают, но думаю, это будет интересный пост.
Оба очень мощные, и это все равно что касаться поверхности, у них больше утилит и других функций. В основном с помощью этих двух инструментов мы можем создать контроль версий,
Разница
Мы ссылаемся на сравнение, оно сравнивает «исходный» файл с «новым» и сообщает нам о различиях, которые существуют между ними. Этот инструмент также позволяет нам создавать файлы .patch, которые мы используем для создания исправлений для наших программ.
Патчи
Это команда, с помощью которой мы буквально «исправляем» наш исходный файл, добавляя и / или удаляя строки в соответствии с инструкциями, содержащимися в файле .patch.
Существует также вимдифф, который представляет собой визуальный инструмент для применения исправлений без необходимости использования файла .patch, поскольку он сравнивает «исходный» и «новый», и в одном и том же файле можно редактировать построчно или весь документ. Я не буду это объяснять, но думаю, что это заслуживает упоминания.
Пример
Теперь самое интересное. Пример!
Это тот случай, у нас есть отличный сценарий, который запрашивает ваше имя и ваш возраст, если вам больше 18 лет, он сообщает вам, что вы можете голосовать, в противном случае он сообщает, что вы не можете голосовать.
оригинал.ш
#! / bin / bash echo "Введите свое имя:" прочтите имя echo "Введите свой возраст:" прочтите возраст, если [[18 -lt $ age]], затем echo "Привет, $ name, вам $ стар и вы можете голосовать!" else echo "Привет, $ name, ты $ старый и не можешь голосовать ..." fi
Изображение кода в Vim
Готово, вот запущенный скрипт:
Вроде все работает нормально
Итак, как хорошие пользователи, мы делимся нашим скриптом с другом :), но мы получаем сообщение о том, что у него есть недостаток, что когда ему 18, он говорит, что он не может голосовать, когда должен.
Логическая ошибка
Теперь приступим к исправлению небольшой ошибки и внесем несколько изменений ...
new.sh
#! / bin / bash maxAge = 18 echo "Введите свое имя:"; прочтите имя echo "Напишите свой возраст:"; прочитать возраст, если [[$ maxAge -le $ age]]; затем эхо "Привет, $ name, тебе $ лет, и ты можешь голосовать!" else echo "Привет, $ name, ты $ старый, и ты не можешь голосовать ..." fi exit 0
Новый код написан на напор
Предположим, сценарий очень тяжелый. Итак, чтобы избежать повторной отправки всего скрипта, мы создаем .patch
$ diff -u original.sh new.sh> patch.patch
И теперь у нас есть наш патч. Здесь вид в напор:
Вот как выглядят инструкции для .patch. Белым цветом - строки, которые не были изменены, синим - удаленные, оранжевым - добавленные.
И чтобы применить это, мы просто используем файл .patch в скрипте, который нужно исправить. Здесь называется оригинальныйAmigo.sh, который является точной копией скрипта оригинал.ш
Сценарий друга
$ patch originalFriend.sh <patch.patch
И это оставляет нам наш файл оригинальныйAmigo.sh Так:
Сценарий друга после применения патча
Как видите, очень легко получить различия и применить патчи. Это все от меня.
Привет народ, будем читать в следующую пятницу.