В этом руководстве представлен общий обзор применения патча к программе или файлу.
Командой, используемой для применения исправлений, является команда patch, но для применения патча команда diff также должна использоваться для обеспечения различий, которые необходимо исправлять.
Почему вы создали патч
Представьте, что у вас есть файл HTML следующим образом:
Добро пожаловать в MySite
Вышеуказанный источник, загруженный в веб-браузер, будет показывать слова «Добро пожаловать в MySite».
Обычно при программировании существует несколько версий одного и того же файла. Например, будет одна версия, которая является текущей версией live, в ветке разработки будет другая версия, которая может содержать несколько изменений, наконец, может быть другая версия в ветви релиза.
Релиз-релиз будет версией, используемой реальными пользователями (т. Е. В этом случае посетителями сайта MySite). Скажем, что MySite находится в версии 1.0. После этапа разработки вы создадите ветвь релиза, которая будет в этом случае 1.1. Отделение разработки будет впереди ветки релиза, поскольку оно может содержать изменения, которые не должны выпускаться в версии 1,2, но будет для версии 1.1.
Представьте, что была ошибка, из-за которой MySite следует называть YourSite. Вы можете пойти в каждую ветку по очереди и внести изменения в живую версию, версию разработки и версию выпуска, вы можете внести изменения в качестве исправления в прямом эфире, а затем применить патч к ветвям разработки и выпуска.
Пример работы
Создайте файл myfile.html со следующим кодом:
Добро пожаловать в MySite
Это обработанный пример исправления исходного кода.
Создайте еще один файл с именем myfile_v2.html со следующим кодом:
Добро пожаловать в YourSite
Это обработанный пример исправления исходного кода.
Первый файл - это оригинальная веб-страница с заголовком «Добро пожаловать в MySite». Второй файл совпадает с первым файлом, за исключением того, что MyFile в тексте переименовывается в YourFile.
Как создать файл Diff
Чтобы создать патч, нам нужно разобраться в различиях между myfile.html и myfile_v2.html.
Мы можем сделать это с помощью команды diff следующим образом:
diff -u myfile.html myfile_v2.html> myfile.patch
Вы можете открыть файл myfile.patch в редакторе nano следующим образом, чтобы просмотреть его: nano myfile.patch
Линии, которые не изменяются, отображаются синим цветом. Линии, которые были удалены, показаны красным цветом, а строки, которые были добавлены, отображаются зеленым цветом. Чтобы применить патч к myfile.html, используйте следующую команду: patch <myfile.patch Это применит изменения, созданные с помощью команды diff, к исходному файлу myfile.html. Если вы хотите вернуть патч так, чтобы myfile.html вернулся к тому, как он был изначально, используйте следующую команду: patch -R <myfile.patch Команда patch может использоваться для применения патчей по всей структуре каталогов. Есть гораздо лучшие инструменты, чем команда patch для создания патчей и обеспечения правильного управления версиями. Существует причина, по которой многие проекты развития используют GIT для контроля источника. GIT упрощает создание последовательной стратегии ветвления. Команда patch подходит для применения различий в сценарии bash или что-то простое, но вы можете так же легко создать резервную копию файлов, которые хотите исправлять, и просто скопировать новые файлы в одно и то же место. Для получения дополнительной информации используйте команду man: патч человека Как применить патч, используя команду исправления
Как вернуть патч
Резюме