В этом руководстве представлен общий обзор применения исправления к программе или файлу.
Команда, используемая для применения исправлений, является командой исправления, но для применения исправления необходимо также использовать команду diff, чтобы указать различия, которые необходимо исправить.
Зачем вам создавать патч
Представьте, что у вас есть HTML-файл следующим образом:
MySiteWelcome To MySite
Приведенный выше источник при загрузке в веб-браузер будет отображать слова «Welcome to MySite».
Обычно при программировании существует несколько версий одного и того же файла. Например, будет одна версия, которая является текущей действующей версией, будет другая версия в ветви разработки, которая может содержать несколько изменений, наконец, может быть другая версия в ветви выпуска.
Ветвь релиза будет версией, используемой реальными пользователями (т.е. в этом случае посетителями веб-сайта MySite). Допустим, MySite имеет версию 1.0. После фазы разработки вы создадите ветку релиза, которая в данном случае будет 1.1. Ветвь разработки будет опережать ветку релиза, потому что она может содержать изменения, которые не должны быть выпущены в версии 1,2, но будут в версии 1.1.
💎Как Применить Патчи Андроид с помощю Core Patch (EdXposed)💎
Представьте, что произошла ошибка, из-за которой MySite должен называться YourSite. Вы можете переходить к каждой ветви по очереди и вносить изменения в живую версию, версию для разработки и выпускную версию, которую вы можете вносить как исправление в живую версию, а затем применять исправление к ветвям разработки и выпуска.
Рабочий пример
Создайте файл myfile.html со следующим кодом:
MySiteWelcome To MySite
Это работающий пример исправления исходного кода.
Создайте другой файл myfile_v2.html со следующим кодом:
YourSiteWelcome To YourSite
Это рабочий пример исправления исходного кода.
Первый файл – это оригинальная веб-страница с заголовком «Welcome to MySite». Второй файл такой же, как и первый, за исключением того, что MyFile в тексте переименовывается в YourFile.
Как создать файл различий
Чтобы создать патч, нам нужно разобраться в различиях между myfile.html и myfile_v2.html.
Использование комманд diff и patch
Комманды diff и patch представляют собой мощную комбинацию. Они часто используются для получения разницы между оригинальными файлами и обновленными, что бы другие люди, у которых есть только только оригинальные файлы могли обновить их используя файлы, которые содержат только разницу. В этой статье показаны базовые принципы использования этих команд.
В этой статье используются без объяснения некоторые базовые команды Linux, такие как смена смена директории, копирование файлов и редактирование текстовых файлов. Использование diff для создания простого патча Наиболее простой пример использования команды diff — получение различий между двумя файлами, оригинальным и обновленным. Можете, например, написать насколько слов обычного текста, сделать какие-нибудь изменения, и сохранить измененния во второй файл. Теперь вы можете сравнить эти эти два файла, используя команду diff:
Как установить патч
Конечно, надо заменить originalfile и updatedfile соответствующими именами файлов. В результате должно получиться что-то вроде этого:
1c1 < These are a few words. No newline at end of file — >These still are just a few words. No newline at end of file
- Когда используется «c», номера строк слева — это строки в оригинальном файле, которые надо заменить строками, находящимися в патче, а номера строк справа — это строки, которые должны быть в пропатченном файле.
- Когда используется «a», номер слева может быть только номером одной строки, который показывает, где надо добавить строку в пропатченном файле, а номера строк справа — это строки, которые должны быть в пропатченном файле.
- Когда используется «d», номера строк слева — это строки, которые надо удалить, чтобы получить пропатченную версию файла, а номер строки справа может быть только номером одной строки, который показывает где будут строки в пропатченном файле, если они не будут удалены. Вы можете подумать, что последний номер не нужен, но не забывайте, что патч можно применить для восстаноления исходного файла. Это будет объяснено позже.
Знак «» означает, что символы после этого знака надо добавить. Когда надо заменить строки («c» между номерами строк), вы увидите оба знака: и «». Когда надо добавить строку («a» между номерами строк), вы увидите только знак «>», а когда надо удалить строку («d» между номерами строк), вы увидите только знак «
Строка » No newline at end of file» появилась из-за того, что я не не нажал enter после того как набрал слова. Считается хорошим тоном заканчивать текстовый файл пустой строкой. Некоторым программам она необходима для работы. Поэтому эта строка появилась после работы команды diff. Добавим пустые строки в конец файлов, и получим более короткий вывод команды diff:
1c1 < These are a few words. — >These still are just a few words.
Как вы возможно заметили, я не объяснил что означают 3 знака «-«. Они означают конец строк, которые надо заменить и начало строк на которые надо заменить. Разделение старых и новых строк. Вы увидите это знак только при замене («c» между номерами строк).
Если мы хотим создать патч, мы должны поместить вывод команды diff в файл. Конечно это можно сделать, скопировав его из консоли и вставив в вашем любимом текстовом редакторе, а затем сохранив этот файл, но есть способ проще. Мы можем с помощью bash направить вывод команды diff в текстовый файл:
Опять же не забудьте заменить originalfile и updatedfile на соответствующие имена файлов. Вы наверное знаете, что опция bash «>» работает со всеми командами. Это очень полезное свойство.
Применение простого патча, который мы создали