Как применить патч к файлу с помощью Linux

В этом руководстве представлен общий обзор применения исправления к программе или файлу.

Команда, используемая для применения исправлений, является командой исправления, но для применения исправления необходимо также использовать команду diff, чтобы указать различия, которые необходимо исправить.

Зачем вам создавать патч

Представьте, что у вас есть HTML-файл следующим образом:

MySiteДобро пожаловать в MySite

Приведенный выше источник при загрузке в веб-браузер будет отображать слова «Welcome to MySite». 

Обычно при программировании существует несколько версий одного и того же файла. Например, будет одна версия, которая является текущей действующей версией, будет другая версия в ветви разработки, которая может содержать несколько изменений, наконец, может быть другая версия в ветви выпуска.

Ветвь релиза будет версией, используемой реальными пользователями (т.е. в этом случае посетителями веб-сайта MySite). Допустим, MySite имеет версию 1.0. После фазы разработки вы создадите ветку релиза, которая в данном случае будет 1.1. Ветвь разработки будет опережать ветку релиза, потому что она может содержать изменения, которые не должны быть выпущены в версии 1,2, но будут в версии 1.1.

Представьте, что произошла ошибка, из-за которой MySite должен называться YourSite. Вы можете переходить к каждой ветви по очереди и вносить изменения в живую версию, версию для разработки и выпускную версию, которую вы можете вносить как исправление в живую версию, а затем применять исправление к ветвям разработки и выпуска. 

Рабочий пример

Создайте файл myfile.html со следующим кодом:

MySiteДобро пожаловать в MySite

Это проработанный пример исправления исходного кода.


Создайте другой файл myfile_v2.html со следующим кодом:

Ваш сайт Добро пожаловать на ваш сайт

Это проработанный пример исправления исходного кода.


Первый файл — это оригинальная веб-страница с заголовком «Welcome to MySite». Второй файл такой же, как и первый, за исключением того, что MyFile в тексте переименовывается в YourFile.

Как создать файл различий

Чтобы создать патч, нам нужно разобраться в различиях между myfile.html и myfile_v2.html. 

Мы можем сделать это с помощью команды diff следующим образом:

diff -u myfile.html myfile_v2.html> myfile.patch

Вы можете открыть файл myfile.patch в редакторе nano следующим образом, чтобы просмотреть его:

nano myfile.patch

Линии, которые не изменились, показаны синим цветом. Удаленные строки показаны красным, а добавленные строки — зеленым.

Как применить патч с помощью команды патча

Чтобы применить исправление к myfile.html, используйте следующую команду:

пластырь < myfile.patch

Как вернуть патч

Это позволит применить изменения, созданные с помощью команды diff, к исходному файлу myfile.html.

Если вы хотите отменить исправление, чтобы myfile.html вернулся к исходному состоянию, используйте следующую команду:

патч -R < myfile.patch

Резюме

Команда patch может использоваться для применения исправлений ко всей структуре каталогов.

Существуют гораздо лучшие инструменты, чем команда patch, для создания исправлений и обеспечения хорошего контроля версий. 

Есть причина, по которой так много проектов разработки используют GIT для контроля версий. GIT позволяет легко создать последовательную стратегию ветвления.

Команда исправления подходит для применения различий к сценарию bash или чему-то простому, но вы также можете легко создать резервную копию файлов, которые вы хотите исправить, и просто скопировать новые файлы в то же место. 

Для получения дополнительной информации используйте команду man:

человек патч
Ссылка на основную публикацию