Найпростіший спосіб створити патч для подання в CorePress Core?


13

Я представив декілька патчів для ядра WordPress на Trac (один з яких використовувався), але щоразу, коли я замислююся про це, я снуюсь, тому що моя установка на це надзвичайно копітка.

Чи може хтось, будь ласка, детально описати кроки, необхідні для подачі виправлення для ядра, а потім найкращий спосіб впорядкувати процес, щоб він не був таким стомлюючим? Зараз я працюю на Mac OS X та PhpStorm, але я думаю, що сценарій оболонки може бути найпростішим? Чи, можливо, PHP-скрипт, який виконує всі маршрути?

Одне з питань - я не повністю розумію, з чого потрібно починати. Почати з тулуба? Чи потрібно завантажувати нову копію та додавати / редагувати цю копію зі своїм кодом кожного разу, коли я хочу створити виправлення?

Знову ж таки, поки я це зробив, працюючи зі SVN, і виправлення дійсно знаходиться поза моїм нинішнім набором вмінь, і я хочу це змінити. Сподіваюсь, що фахівці з виправлення WordPress можуть допомогти мені. Заздалегідь спасибі.

ОНОВЛЕННЯ:

Після відповіді @ hakre я думаю, що мені слід додати більше запитання:

  • Чи можу я створити виправлення з старішої версії чи потрібно використовувати багажник?
  • Якщо я працюю над проектом, використовуючи випущену версію (3.0.1), чи можу я змінити його та створити патч для ядра чи потрібно завантажити та встановити незайману та нову копію магістралі та нещодавно внести там свої зміни?
  • Чи можу я зробити з скриптами оболонки, щоб я міг закодувати вхід до сценарію та просто запустити сценарій, щоб відтворити все, що мені потрібно та / або створити патч?
  • А які підводні камені?

Всі ці питання, здається, беруть на себе ті, хто знає, як працює SVN WordPress, і як такий завжди заглиблюється в будь-яку дискусію.

Відповіді:


8

Тут описаний найпростіший спосіб створення виправлення:

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

Чи можу я створити виправлення з старішої версії чи потрібно використовувати багажник?

Ви повинні створити виправлення проти тієї самої версії, до якої ви хочете застосувати.

Іншими словами, не очікуйте, що патч, створений проти WP 3.0.1, буде чітко застосований на WP 3.1-альфа.

Якщо я працюю над проектом, використовуючи випущену версію (3.0.1), чи можу я змінити його та створити патч для ядра чи потрібно завантажити та встановити незайману та нову копію магістралі та нещодавно внести там свої зміни?

Не потрібно встановлювати нову установку для кожного нового виправлення. Ви можете просто скористатися поверненням до svn, щоб повернутися до незайманої копії.

Крім того, база даних не повинна бути чистою щоразу. Насправді, краще, якщо у вас є якісь модифікації, щоб імітувати живе середовище.


1
Боже, створити виправлення дуже просто, коли у нас є робоча копія:, svn diff > my-patch.patchгуста!
brasofilo

5

Eclipse PDT + Subclipse + X

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

Потім я редагую потрібні для редагування файли. Затемнення показує, які модифіковані, я клацаю правою кнопкою миші на каталог, вибираю Team->Create Patchі мені пропонуються всі змінені файли, які я можу вибрати для розл. Тоді я можу вибрати між копіюванням у буфер обміну або збереженням на диску. Я зберігаю всі патчі, створені з номером квитка, в каталог, який я маю на своєму жорсткому диску.

Потім я заходжу в браузер і завантажую виправлення.

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

Тож справді, замовляй Eclipse, якщо хочеш. Вона величезна і повільна, тому вам потрібен або великий комп'ютер. У маленьких я зробив хороший досвід роботи з Fedora Linux. Затемнення добре протікає по ньому. Я знаю, що ти фанат PHP Storm, але, мені дуже подобається мій Eclipse, і він має багато розширень, які насправді гойдаються. Навіть для PHP :). Але PHP Storm в основному також повинен робити каси / патчі.

WordPress Eclipse 1x1

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

Приклад інтеграції: PHP-код Sniffer, Eclipse та WordPress


Дякую за відповідь. Я спробував Eclipse і ненавидів його. Занадто невідповідально, і мені просто не сподобався інтерфейс. Тож це гарна відповідь для інших, для яких Eclipse - це варіант, але ваша відповідь не відповідає моїм потребам. Я проголосую і буду голосувати, але я вважаю за краще рішення, яке не пов'язане з IDE, також таке, яке краще пояснює процес.
MikeSchinkel

Також я хотів сказати, що PhpStorm має повну інтеграцію у SVN (та Git), але її інтеграція дійсно вимагає від користувача, щоб повністю зрозуміти, який ефект матиме кожне меню, оскільки воно пропонує мало-ніяких вказівок щодо роботи з ними (є багато у файлах довідки, але оскільки вони не є контекстно-чутливими, і оскільки SVN + Git є величезним доповненням до PhpStorm, це легко повністю загубитися у всьому.) Ось чому я хочу зрозуміти це в основі і не потрібно переходити на IDE Мені не подобається це робити.
MikeSchinkel

@MikeSchinkel - Якщо SVN занадто складний для вас (незалежно від того, який аромат SVN + редактора), ви не можете створити патчі для проекту wordpress. Якщо ви не любите інтерфейс вашого інтерфейсу до SVN, вивчіть командний рядок. Але вчитися потрібно все одно. Ви можете використовувати SVN з будь-яким редактором, який вам до вподоби. Btw .. У мене є одна копіювання файлів SVN і налаштована на веб-сервері, щоб створити патчі та протестувати їх. Після того, як я зробив один патч, я видаляю локальні зміни (повернення) зі своєї локальної копії, а потім можу продовжувати використання інших патчів. Це завжди робота. Що ще сказати?
хакре

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.