MyTetra Share
Делитесь знаниями!
Как накладывать патчи (patch)
Время создания: 04.08.2011 19:55
Текстовые метки: linux, patch, diff
Раздел: Компьютер - Linux - Bash - Команды и скрипты
Запись: xintrea/mytetra_syncro/master/base/1312473329dzypaazii7/text.html на raw.github.com

Чтобы наложить патч, надо перейти в каталог, где находится старый файл/каталог, и выполнить команду

patch < файл_патча

При использовании патчей к каталогам обычно делают так: патч создается, как описано выше (тогда в заголовках патчей к отдельным файлам путь к ним будет начинаться с имени нового каталога), а прикладывается он внутри изменяемого каталога. Тогда команда будет выглядеть так:

patch -p1 < файл_патча

Здесь -p1 означает, что из заголовков патча надо убрать начальный каталог. Поясню всё это на примере. У нас имеется дерево исходников ядра 2.6.0. Это каталог linux-2.6.0, в котором содержатся каталоги drivers, arch и т.д. И у нас есть патч до версии 2.6.1, в котором содержатся такие заголовки:

--- a/drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004

+++ b/drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004

Видим, что при создании патча старый и новый каталоги назывались a и b соответственно. У нас же каталог называется по-другому, и patch ничего сделать не сможет. Поэтому заходим в каталог linux-2.6.0 и выполняем указанную выше команду. Теперь заголовки будут интерпретироваться как

--- drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004

+++ drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004

и патч приложится нормально.

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования