問題描述
我已經在 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 構建路徑排除:wp-admin /load-scripts.php; wp-admin /load-styles.php 。
-
Subversion(Trunk) 是:http://svn.automattic.com/wordpress/trunk,其他的。
-
任務倉庫:使用 Trac 連接器與 https://core.trac.wordpress.org 。
啊,我在我的操作系統中有一個工具,可以保存我使用的所有目錄。所以我可以保存補丁並快速上傳文件,因為它們始終來自我最近列表中的目錄。
集成示例:PHP Code Sniffer, Eclipse and WordPress
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。