Почитал http://drupal.ru/node/8542, ужаснулся. Вот моя версия:
Шаг1: качаем пакет утилит http://unxutils.sourceforge.net/ , находим там patch.exe
Шаг2: используем по аналогии с unix версией. Т.е. кидаем патч в корень нашего друпала, запускаем командную строку, и patch -p0 < file.patch (patch.exe должен быть доступен через системные пути, которые можно посмотреть набрав path в командной строке)
UPD: Если при патчинге возникают проблемы ( Assertion failed: hunk, file .... ) откройте файл патча текстовым редактором и пересохраните (чтобы unix-style окончания строк переконвертились в windows-style)
Комментарии
У меня пишет
Не удается найти указанный файл.
кто пишет? в командной строке? Значит patch.exe не в ту папку кинул.. попробуй прописать полный путь к нему,
c:/windows/patch -p0 < file.patch
Прописал полный путь
В итоге командная строка выдала
C:\WINDOWS>patch -p0 < quicktags.patch
patching file `quicktags.module'
Assertion failed: hunk, file patch.c, line 321
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
patching file `quicktags.module'
Assertion failed: hunk, file patch.c, line 321
пересохрани патч текстовым редактором, который сообразит поменять никсовые переводы каретки на win
Кстати, если у кого-то получилось "по легкому" - то это замечательно, ибо не напиши я трактат, вы не написали бы более легкий путь
тоже верно )
здравствуйте. применяю патчи безопасности для Друпал 5,2.
без смены окончаний строк такая ошибка не вылезала.
просто начиналось выполнение патча, причем какое то до бесконечности зацикленное,
....
missing header for unified diff at line 575 of patch
can't find file to patch at input line 575
Perhaps you used the wrong -p or --strip option?
File to patch:
Skip this patch? [y]
Skipping patch.
missing header for unified diff at line 577 of patch
can't find file to patch at input line 577
Perhaps you used the wrong -p or --strip option?
File to patch:
Skip this patch? [y]
Skipping patch.
missing header for unified diff at line 579 of patch
can't find file to patch at input line 579
Perhaps you used the wrong -p or --strip option?
File to patch:
Skip this patch? [y]
Skipping patch.
.....
изменений насколько я понимаю не происходило, так как везде "Skipping patch".
в общем, остановил CTRL+BREAK, пересохранил патч, изменив окончания строк c UNIX на WIN.
теперь выдается следующее
C:\>patch -p0 < D:\home\site\www\SA-2007-024-5.2.patch
can't find file to patch at input line 8
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: includes/common.inc
|===================================================================
|RCS file: /cvs/drupal/drupal/includes/common.inc,v
|retrieving revision 1.611.2.9
|diff -u -F^f -r1.611.2.9 common.inc
|--- includes/common.inc 26 Jul 2007 19:16:45 -0000 1.611.2.9
|+++ includes/common.inc 17 Oct 2007 19:28:03 -0000
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
C:\>
в чем может быть дело?
или описаные способы годятся только для патчинга модулей?
кстати такой момент: файлы patch.exe и все файлы патчей лежат в каталоге www, но хотя patch.exe доступен из переменных окружения, файлы патчей,что указываются в параметре приходится прописывать полным путем. иначе выдается " файл не найден". странно.
Serious Sam рулит
рабочая ссылка - http://sourceforge.net/projects/unxutils
но ничего у меня под вистой не получилось.
Ребята, расскажу по секрету: самый простой путь патчить код друпала, - это пересесть на Unix-like свободную операционную систему, например: GNU/Linux, *BSD и.т.п.
патч екзе не кОчается. ни у кого нет файлика для патчей под винду?
я ссылку выше привел.
А как запатчить на удаленной машине (хостинге) ?
Вопроса никто не заметил. Досадно; а то мне тоже интересно.
Кстати скачал, там нет patch.exe
FF'ом все качается.
куда же он делся? есть он там.
Блин, да, всё ок, я сурсы скачал нечаянно
Кстати, если проект на хостинге и есть доступ по Телнет или SSH, можно пропатчить там
Я скачал с сервера нужный мне .patch файл, файл который нужно пропатчить... и patch.exe в положил в одну папку.
Через Total Commander - в командной строке, вбил комманду: patch -p0 < multiple_node_access.patch
Хуякс, окошко открылось.. и сразу же закрылось, ничего не изменилось.
В чём может быть проблема?
ps. в файле патча, в самом начале, прописал путь до файл, который нужно пропатчить:
--- node.module 2008-10-09 09:42:50.000000000 -0400
+++ node.module.new 2008-10-09 09:43:11.000000000 -0400
ничего в файло с патчем прописывать не нужно. лог действий команды patch.exe можно посмотреть если вызвать cmd в том же самом totalcmd находясь в нужной папке. и потом уже в окошке cmd набрать нужную команду.
Некорректное сравнение.
работать с утилитами для командной строки под unix-like системами на порядок комфортнее. это факт.
а под виндоуз можно посоветовать использовать tortoisesvn. оно умеет применять *.patch'и через gui. тут же показывать результат и вносить коррективы.
проблема аналогичная описанной выше - везде
Skip this patch? [y]
Skipping patch.
и ничего не патчит. Пересохранения не помогают. Как решать?
Тем, у кого не патчит. Сначала нужно перейти в папку с друпалом:
cd c:\...
А потом уже патч накатывать:
patch -p0 ...
такая же фигня
решил задачу
1. открываешь file.patch редактором Notepad++
2. меню Кодировки ---> Преобразовать в Win-формат
3. сохраняем и далее как в сабжевой инструкции
и все идет как по маслу
Спасибо Вам, restyler! Очень давно эта тема меня "беспокоила". Теперь не беспокоит!
Спасибо за эту тему, пригодилась сильно, день парился с этим вопросом, пока не прочитал, что всё ТАК просто.
Свои соображения:
поставил unxutils, файлов этой проги никуда не копировал,
открыл патч-файл AkelPad'ом, в меню нашёл: "правка-> формат новой строки-> dos/windows", сохранил,
команду для патча засунул в bat-файл, положил его и патч-файл в корень друпала, запустил bat-файл из Command Prompt Portable (можно использовать и командную строку из стандартных программ Windows и Far manager и даже наверно Norton Commander)
И было мне счастье, когда я увидел в окне командной строки список пропатченных файлов.
есть кстати для патчинга файлов еще чисто виндоввые проги: WinMERGE и TortoiseSVN
только какая из них и что именно делает я не помню... то ли они вообще только вместе робят...
какой-то из них я даже пользовался когда-то
Файл, который патчится: с:/views_tree.theme.inc
патч: views_tree.theme_.9.patch
Скачал patch.exe. Дальше закинул 3 файла в папку C:/1 (это нужно)?
в командной строке написал cd c:\
Далее patch -p0 < views_tree.theme_.9.patch, и открылся patch.exe...
А дальше?
1. Из какого комплекта брал patch.exe? Если unxutils, то я после их установки ехе-шники никуда не копировал.
2. наверно, cd C:/1 ?
3. Открылся, и что сказал?
Тут поподробнее описан этот способ
http://shaman.asiadata.ru/node/74
Подскажите новичку.Для чего нужно патчиться?
Я на хрюшке сижу
Пробовал всё что здесь указано - не помогло. А вот использование msysGit помогло!)
А корень "нашего друпала" где должен при этом находится?
________________________
Вопрос снят...
Не соглашусь с автором что это легкий путь. Например под виндой 7 мне так и не удалось это сделать (гугл говорит что под семерку есть ньюансы). Пробовал утилиту patch.exe из состава GNUwin32, пытался сделать с помощью TortoiseMerge (входит в состав Tortoise SVN), уже было полез в консоль гита для того чтобы попытаться там сделать, но наткнулся на шедевральный способ как применить патч с помощью NetBeans: http://drupal.org/node/60179
Мне даже его ставить не пришлось, у меня он стоял. Вообще не пользуюсь, но для того чтобы накладывать патчи теперь буду юзать только его.
До этого я патчи применял ручками - строки с минусами удалял, строки с плюсами ставил. Но сегодня попался очень большой и сложный патч, что я решил это дело как-то автоматизировать.
Перед тем как нашел решение с нетбинсом много перегуглил и перепробовал, единственная статья, которая помогла лучше понять суть проблемы и как это в винде устроено здесь: http://azbukaweb.ru/run-patch-for-windows (это если патчить через виндовую консоль)
Но мой совет новичкам и нубам типа меня - скачайте нетбинс и можно забыть о проблемах с патчами