it-swarm.xyz

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

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

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

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

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

Обновление:

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

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

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

12
MikeSchinkel

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

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

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

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

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

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

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

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

8
scribu

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

5
hakre

Я использую это сам:

https://core.trac.wordpress.org/ticket/9724

Хотя это явно больше в отделе патчей. ;-)

2
Denis de Bernardy