問題描述

我已經在 Trac 上提交了一些 patches for WordPress core(其中一個已經被使用),但是每次我想到這樣做,我都很傷心,因為我這樣做的設置是令人難以置信的乏味的。

有人可以請詳細説明為核心提交補丁所需的步驟,然後是簡化流程的最佳方法,這樣就不那麼繁瑣?我現在工作 Mac OS X 和 PhpStorm,但我認為 shell 腳本可能最簡單?或者也許是一個 PHP 腳本,做所有的 rote 工作?

其中一個問題是我不完全明白我需要開始的。我是從幹線開始嗎?每次要創建補丁時,是否必須下載新副本並添加/編輯該副本與我的代碼?

再次,我已經完成了與 SVN 的工作,補丁真的在我目前的技能之外,我想改變。希望你的 WordPress 修補專家可以來搶救。提前致謝。

更新:

在 @ hakre 的回答之後,我想我應該補充更多的問題:

  • 我可以從舊版本創建補丁,還是必須使用中繼?

  • 如果我正在使用發佈版本 (3.0.1) 的項目,我可以修改它,併為核心創建一個補丁,或者我必須下載並設置一個原始和新的中繼副本,並將其修改在那裏?

  • 我可以使用 shell 腳本,所以我可以將登錄編碼到腳本中,只需運行腳本來重新創建我需要的和/或創建補丁的一切;

  • 什麼是陷阱?

所有這些問題似乎都是由知道 WordPress 的 SVN 如何工作的人所假設的,因此在任何討論中總是被忽略。

最佳解決方案

這裏描述創建補丁的最簡單的方法是:

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

Can I create patches from older version or must I use trunk?

您應該根據您應用的相同版本創建補丁。

換句話説,不要指望針對 WP 3.0.1 創建的補丁應用於 WP 3.1-alpha 上。

If I’m working on a project using the released version (3.0.1) can I modify it and create a patch for core or do I have to download and set up a pristine and new copy of trunk and newly make my modifications there?

您不必為每個新補丁設置新的安裝。您可以使用 svn 恢復來恢復原始副本。

此外,數據庫不需要每次都清理。其實,如果你有一些修改,模擬一個現場環境會更好。

次佳解決方案

Eclipse PDT + Subclipse + X

我使用的是具有 SVN 集成的 Eclipse 。我認為 PHP Strom 也是這樣做的。我進入我的一箇中繼項目,這些項目基本上都是從 WordPress 的 svn 存儲庫中結帳的。

然後我編輯我需要編輯的文件。 Eclipse 顯示哪些被修改,我 right-click 一個目錄,選擇 Team->Create Patch,我提供了所有更改的文件,我可以選擇差異。然後我可以選擇複製到剪貼板或保存到磁盤。我將我創建的所有修補程序保存到我的硬盤上的目錄中。

然後我進入瀏覽器並上傳補丁。

我也可以使用 MyLyn Trac 集成,這更加舒適,但是您需要在 trac 中使用 XML-RPC,因此您需要一個 trac 管理員才能聯繫。它的工作相當不錯,但是我沒有在每個項目中進行配置,主要是在我進行故障排除時使用。

所以真的,如果你喜歡,檢查 Eclipse 。這是巨大而緩慢的,所以你需要一台大電腦。對於小的,我在 Fedora Linux 上做了很好的經驗。 Eclipse 運行良好。我知道你是一個 PHP 風扇,但是,我真的很喜歡我的 Eclipse,它有很多擴展,真的很棒。甚至 PHP :) 。但是,PHP Storm 應該基本上做出結帳/補丁的東西。

WordPress Eclipse 1×1

啊,我在我的操作系統中有一個工具,可以保存我使用的所有目錄。所以我可以保存補丁並快速上傳文件,因為它們始終來自我最近列表中的目錄。

集成示例:PHP Code Sniffer, Eclipse and WordPress

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。