Самый простой способ создать патч для отправки в WordPress Core?

13

Я представил несколько исправлений для ядра WordPress на Trac (одно из которых было использовано), но каждый раз, когда я думаю об этом, я съеживаюсь, потому что мои настройки для этого невероятно утомительны.

Может кто-нибудь подробно описать шаги, необходимые для отправки патча для ядра, а затем лучший способ упростить процесс, чтобы он не был таким утомительным? Я работаю в Mac OS X и PhpStorm в настоящее время, но я думаю, что сценарий оболочки может быть проще всего? Или, может быть, PHP Script, который выполняет всю работу?

Одна из проблем заключается в том, что я не до конца понимаю, с чего мне начать. Начинать с багажника? Нужно ли загружать новую копию и добавлять / редактировать эту копию с моим кодом каждый раз, когда я хочу создать патч?

Опять же, хотя я и сделал это, работая с SVN, а патчирование действительно выходит за рамки моего текущего набора навыков, и я хочу это изменить. Надеюсь, что эксперты по патчированию WordPress могут прийти мне на помощь. Заранее спасибо.

ОБНОВИТЬ:

После ответа @ hakre я решил добавить еще один вопрос:

  • Могу ли я создавать патчи из более старой версии или я должен использовать транк?
  • Если я работаю над проектом, использующим выпущенную версию (3.0.1), могу ли я изменить его и создать патч для ядра, или мне нужно загрузить и настроить нетронутую и новую копию транка и заново внести туда свои модификации?
  • Могу ли я использовать сценарии оболочки, чтобы я мог закодировать логин в сценарии и просто запустить сценарий, чтобы воссоздать все, что мне нужно, и / или создать патч?
  • И какие подводные камни?

Все эти вопросы, по-видимому, принимаются теми, кто знает, как работает SVN в WordPress, и поэтому всегда скрывается в любом обсуждении.

MikeSchinkel
источник

Ответы:

8

Самый простой способ создать патч описан здесь:

http://wordpress.org/download/svn/

Могу ли я создавать патчи из более старой версии или я должен использовать транк?

Вы должны создать патч для той же версии, к которой хотите применить.

Другими словами, не ожидайте, что патч, созданный для WP 3.0.1, будет корректно применяться на WP 3.1-alpha.

Если я работаю над проектом, использующим выпущенную версию (3.0.1), могу ли я изменить его и создать патч для ядра, или мне нужно загрузить и настроить нетронутую и новую копию транка и заново внести туда свои модификации?

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

Кроме того, база данных не должна быть чистой каждый раз. На самом деле, лучше, если у вас есть какие-то модификации, чтобы имитировать живую среду.

scribu
источник
1
Черт возьми, чертовски легко создать патч после того, как у нас есть рабочая копия: svn diff > my-patch.patchя, Густа!
brasofilo
5

Eclipse PDT + Subclipse + X

Я использую Eclipse, который имеет интеграцию SVN . Я думаю, что PHP Strom делает то же самое. Я вхожу в один из моих стволовых проектов, которые в основном являются извлечением из хранилища WordPress SVN.

Затем я редактирую файлы, которые мне нужно отредактировать. Eclipse показывает, какие изменения, я щелкаю правой кнопкой мыши по каталогу, выбираю Team->Create Patchи мне предлагают все измененные файлы, которые я могу выбрать для сравнения. Затем я могу выбрать между копированием в буфер обмена или сохранением на диск. Все патчи, которые я создаю с номером заявки, я сохраняю в каталог на своем жестком диске.

Затем я захожу в браузер и загружаю патч.

Я мог бы также сделать это с интеграцией MyLyn Trac , что еще более удобно, но вам нужен XML-RPC прямо в trac, поэтому вам нужен администратор trac для связи. Это работает довольно хорошо, но у меня не настроено это в каждом проекте, и я использую его, главным образом, когда делаю краткое изложение билетов.

Так что, на самом деле, проверьте Eclipse, если хотите. Он огромный и медленный, поэтому вам нужен либо большой компьютер. На маленьких я хорошо знаком с Fedora Linux. Затмение хорошо работает на нем. Я знаю, что вы поклонник PHP Storm, но мне действительно нравится мой Eclipse, и он поставляется с множеством расширений, которые действительно потрясают. Даже для PHP :). Но PHP Storm должен в основном делать вещи для извлечения / исправления.

WordPress Eclipse 1x1

Ах, и у меня есть инструмент в моей ОС, который сохраняет все каталоги, которые я использовал. Так что я могу быстро сохранить патчи и загрузить файлы, потому что они всегда находятся в той же директории, что и в недавнем списке.

Пример интеграции: PHP Code Sniffer, Eclipse и WordPress

hakre
источник
Спасибо за ответ. Я попробовал «Затмение» и ненавидел его. Слишком не отвечает, и мне просто не понравился интерфейс. Так что это хороший ответ для других, для которых Eclipse - вариант, но ваш ответ не отвечает моим потребностям. Я дам это и голосование, но я бы предпочел решение, которое не связано с IDE, а также решение, которое лучше объясняет процесс.
MikeSchinkel
Также я хотел сказать, что PhpStorm имеет полную SVN (и Git) интеграцию, но для этой интеграции действительно требуется, чтобы пользователь полностью понимал, какое влияние окажет каждое меню, потому что он предлагает практические рекомендации по работе с ними (их достаточно много). в файлах справки, но поскольку они не чувствительны к контексту и поскольку SVN + Git является огромным дополнением к PhpStorm, во всем этом легко потеряться.) Вот почему я хочу понять это по сути и не переходить на IDE Мне не нравится это делать.
MikeSchinkel
@MikeSchinkel - если SVN слишком сложен для вас (независимо от того, какой вариант SVN + Editor), вы не сможете создавать патчи для проекта WordPress. В основном, если вам не нравится интерфейс вашего пользовательского интерфейса для SVN, изучите командную строку. Но вам все равно нужно учиться. Вы можете использовать SVN с любым редактором, который вам нравится. Кстати, у меня есть один канал SVN для копирования и настройки на веб-сервере, чтобы создавать патчи и тестировать их. После того, как я сделал один патч, я удаляю локальные изменения (возвращаюсь) из своей локальной копии и затем могу перейти к другим патчам. Это всегда работа. Что еще сказать?
Хакре