Как применить patch?

Главные вкладки

Комментарии

Аватар пользователя alexo alexo 24 мая 2018 в 10:27

Т.е. можно просто скопировать адрес ссылки на пэч и в командной строке ввести patch -p1 < path/file.patch, где скопированный адрес вставить вместо path, а название файла вместо file.patch и не нужно вручную убирать строки с минусом и добалвять строки с плюсом? Они автоматически добавятся в нужный файл?

Аватар пользователя Plazik Plazik 22 января 2013 в 21:43

Открыть файл патча в notepad++ (будет подсветка синтаксиса). Там где минусы в начале, эти строки удаляешь у файла, там где плюсы, это строки добавляешь. Там где ничего нет, по ним ищешь места, где вставить код.
Это решение в лоб, но для небольших патчей помогает Smile

Аватар пользователя multpix multpix 22 января 2013 в 23:32

в netbeans есть даже кнопка "применить патч различий"
для winпользователей это будет наименее болезненный путь

у линуксоидов эта проблема отсутствует

продвинутый winзверь поставит виндовый аналог patch или cygwin,
почешет репу, спросит у себя нафига эти лишние телодвижения
и перейдет на nix))))))))

Аватар пользователя xSPiRiTx xSPiRiTx 23 января 2013 в 9:43

и снова моя тема:
тут патч для интеграции shadowbox в модуль insert
http://drupal.org/node/1886464

Я счастливый пользователь archlinux, в терминале перехожу в директорию с модулем insert, туда же сложил файл патча и выполняю patch -pl < insert-add_support_to_shadowbox-1886464-1_0.patch
в ответ получил:

[admin@archlinux insert]$ patch -pl < insert-add_support_to_shadowbox-1886464-1_0.patch
patch: **** strip count l is not a number

вот выхлоп на другую команду:

[admin@archlinux insert]$ git apply --index insert-add_support_to_shadowbox-1886464-1_0.patch
fatal: --index outside a repository

что-то не получается!

Аватар пользователя multpix multpix 23 января 2013 в 17:34

"xSPiRiTx" wrote:

какие проблемы?


cd sites/all/modules/insert/
wget http://drupal.org/files/insert-add_support_to_shadowbox-1886464-1_0.patch
less insert-add_support_to_shadowbox-1886464-1_0.patch (поглядеть что-ли))
patch < insert-add_support_to_shadowbox-1886464-1_0.patch

l это не 1 ,а 1 не l )))))))))

Аватар пользователя xSPiRiTx xSPiRiTx 24 января 2013 в 14:58

пасибки, только...получил вместо сайта белую страницу с:

Fatal error: require(): Failed opening required '/opt/lampp/htdocs/drupal.my/sites/all/modules/insert/includes/shadowbox.inc' (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/drupal.my/sites/all/modules/insert/insert.module on line 14

вот 13 и 14 строки файла insert.module

//Include shadowbox
require dirname(__FILE__) . '/includes/shadowbox.inc';

файл /includes/shadowbox.inc отсутствует. либо его где-то надо взять либо он должен был сам создаваться чтоли

Аватар пользователя xSPiRiTx xSPiRiTx 24 января 2013 в 14:57

все ништяк! все файлы были сложены в директории модуля в /b
это видимо от моих прежних попыток пропатчить осталось. просто скопировал их в корень модуля, кеша зачистил.

Аватар пользователя sergey-shulipa sergey-shulipa 29 октября 2015 в 19:58

Спасибо, duozersk!
Думаю, не стоит мучаться, надо просто ставить git. Пусть никого не пугает: с git, как с системой контроля версий разбираться не придется: просто ставим, запускаем git bash, командой cd переходим в нужную папку (для windows-юзеров: не понимает, например, восклицательные знаки в названиях папок и надо использовать / вместо \ в Винде) и выполняем git apply --index path/file.patch, как написал duozersk.