ПОШАГОВАЯ ИНСТРУКЦИЯ : как патчить модули под Windows (ЛЕГКИЙ ПУТЬ)

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

Аватар пользователя restyler restyler 14 октября 2007 в 21:38

Почитал 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)

Комментарии

Аватар пользователя restyler restyler 15 октября 2007 в 14:10

кто пишет? в командной строке? Значит patch.exe не в ту папку кинул.. попробуй прописать полный путь к нему,
c:/windows/patch -p0 < file.patch

Аватар пользователя ursus ursus 15 октября 2007 в 14:25

Прописал полный путь
В итоге командная строка выдала

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.

Аватар пользователя restyler restyler 15 октября 2007 в 19:22
C:\WINDOWS>patch -p0 < quicktags.patch
patching file `quicktags.module'
Assertion failed: hunk, file patch.c, line 321

пересохрани патч текстовым редактором, который сообразит поменять никсовые переводы каретки на win

Аватар пользователя ursus ursus 15 октября 2007 в 15:35

Кстати, если у кого-то получилось "по легкому" - то это замечательно, ибо не напиши я трактат, вы не написали бы более легкий путь Smile

Аватар пользователя restyler restyler 15 октября 2007 в 19:28

Кстати, если у кого-то получилось "по легкому" - то это замечательно, ибо не напиши я трактат, вы не написали бы более легкий путь Smile

тоже верно )

Аватар пользователя naumov13 naumov13 1 ноября 2007 в 10:55

здравствуйте. применяю патчи безопасности для Друпал 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 доступен из переменных окружения, файлы патчей,что указываются в параметре приходится прописывать полным путем. иначе выдается " файл не найден". странно.

Аватар пользователя Ne01eX Ne01eX 16 ноября 2008 в 12:25

Ребята, расскажу по секрету: самый простой путь патчить код друпала, - это пересесть на Unix-like свободную операционную систему, например: GNU/Linux, *BSD и.т.п. Smile Smile Smile

Аватар пользователя ii ii 17 января 2009 в 9:42

"andron13" wrote:
патч екзе не кОчается. ни у кого нет файлика для патчей под винду?

я ссылку выше привел.

Аватар пользователя torbasow torbasow 11 июля 2012 в 10:42

iex wrote:
А как запатчить на удаленной машине (хостинге) ?

Вопроса никто не заметил. Досадно; а то мне тоже интересно.

Аватар пользователя EllECTRONC EllECTRONC 13 апреля 2009 в 18:49

"andron13" wrote:
патч екзе не кОчается. ни у кого нет файлика для патчей под винду?

FF'ом все качается.
"iex" wrote:
Кстати скачал, там нет patch.exe

куда же он делся? есть он там.

Аватар пользователя iex iex 14 апреля 2009 в 15:36

Блин, да, всё ок, я сурсы скачал нечаянно Smile
Кстати, если проект на хостинге и есть доступ по Телнет или SSH, можно пропатчить там Smile

Аватар пользователя BassEast BassEast 14 мая 2009 в 18:05

Я скачал с сервера нужный мне .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

Аватар пользователя Ne01eX Ne01eX 22 мая 2009 в 22:25

ничего в файло с патчем прописывать не нужно. лог действий команды patch.exe можно посмотреть если вызвать cmd в том же самом totalcmd находясь в нужной папке. и потом уже в окошке cmd набрать нужную команду.

Аватар пользователя PVasili PVasili 4 июня 2009 в 15:21

"Ne01eX" wrote:
Ребята, расскажу по секрету: самый простой путь патчить код друпала, - это пересесть на Unix-like свободную операционную систему, например: GNU/Linux, *BSD и.т.п. Smile Smile =)
LOL это примерно как: для того чтобы художнику в доме помыть руки под краном - ему нужно снести дом, вырыть яму, дождаться пока в яму наберется воды от дождей и затем вымыть руки...

Аватар пользователя v1adimir v1adimir 14 июня 2009 в 16:19

работать с утилитами для командной строки под unix-like системами на порядок комфортнее. это факт.

а под виндоуз можно посоветовать использовать tortoisesvn. оно умеет применять *.patch'и через gui. тут же показывать результат и вносить коррективы.

Аватар пользователя jason32 jason32 17 июня 2009 в 12:25

проблема аналогичная описанной выше - везде

File to patch:
Skip this patch? [y]
Skipping patch.

и ничего не патчит. Пересохранения не помогают. Как решать?

Аватар пользователя Trolzen Trolzen 7 октября 2010 в 20:46

jason32 wrote:
проблема аналогичная описанной выше - везде

File to patch:
Skip this patch? [y]
Skipping patch.

и ничего не патчит. Пересохранения не помогают. Как решать?


Тем, у кого не патчит. Сначала нужно перейти в папку с друпалом:
cd c:\...
А потом уже патч накатывать:
patch -p0 ...

Аватар пользователя DennisVV DennisVV 19 ноября 2009 в 17:29

решил задачу
1. открываешь file.patch редактором Notepad++
2. меню Кодировки ---> Преобразовать в Win-формат
3. сохраняем и далее как в сабжевой инструкции
и все идет как по маслу

Аватар пользователя Vitalaa Vitalaa 15 октября 2010 в 13:08

Спасибо за эту тему, пригодилась сильно, день парился с этим вопросом, пока не прочитал, что всё ТАК просто.

Свои соображения:

поставил unxutils, файлов этой проги никуда не копировал,

открыл патч-файл AkelPad'ом, в меню нашёл: "правка-> формат новой строки-> dos/windows", сохранил,

команду для патча засунул в bat-файл, положил его и патч-файл в корень друпала, запустил bat-файл из Command Prompt Portable (можно использовать и командную строку из стандартных программ Windows и Far manager и даже наверно Norton Commander)

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

Аватар пользователя DennisVV DennisVV 15 октября 2010 в 18:02

есть кстати для патчинга файлов еще чисто виндоввые проги: WinMERGE и TortoiseSVN
только какая из них и что именно делает я не помню... то ли они вообще только вместе робят...
какой-то из них я даже пользовался когда-то

Аватар пользователя digital_sword digital_sword 24 октября 2010 в 21:11

Файл, который патчится: с:/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...
А дальше?

Аватар пользователя Vitalaa Vitalaa 27 октября 2010 в 7:27

1. Из какого комплекта брал patch.exe? Если unxutils, то я после их установки ехе-шники никуда не копировал.
2. наверно, cd C:/1 ?
3. Открылся, и что сказал?

Аватар пользователя Холод Холод 23 апреля 2012 в 22:35

"restyler" wrote:
Шаг2: используем по аналогии с unix версией. Т.е. кидаем патч в корень нашего друпала, запускаем командную строку, и patch -p0 < file.patch (patch.exe должен быть доступен через системные пути, которые можно посмотреть набрав path в командной строке)

А корень "нашего друпала" где должен при этом находится?
________________________
Вопрос снят...

Аватар пользователя petrovnn petrovnn 23 июня 2012 в 19:20
1

Не соглашусь с автором что это легкий путь. Например под виндой 7 мне так и не удалось это сделать (гугл говорит что под семерку есть ньюансы). Пробовал утилиту patch.exe из состава GNUwin32, пытался сделать с помощью TortoiseMerge (входит в состав Tortoise SVN), уже было полез в консоль гита для того чтобы попытаться там сделать, но наткнулся на шедевральный способ как применить патч с помощью NetBeans: http://drupal.org/node/60179

Мне даже его ставить не пришлось, у меня он стоял. Вообще не пользуюсь, но для того чтобы накладывать патчи теперь буду юзать только его.

До этого я патчи применял ручками - строки с минусами удалял, строки с плюсами ставил. Но сегодня попался очень большой и сложный патч, что я решил это дело как-то автоматизировать.

Перед тем как нашел решение с нетбинсом много перегуглил и перепробовал, единственная статья, которая помогла лучше понять суть проблемы и как это в винде устроено здесь: http://azbukaweb.ru/run-patch-for-windows (это если патчить через виндовую консоль)

Но мой совет новичкам и нубам типа меня - скачайте нетбинс и можно забыть о проблемах с патчами