问题描述

我已经在 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。