提交补丁

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.0,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

提交补丁

补丁是提供bug修复或对Symfony2提出增强建议的最佳方式。ob娱乐下载

步骤1:设置环境

安装软件堆栈

在使用Symfony2之前,使用以下ob娱乐下载软件设置一个友好的环境:

  • Git;
  • PHP 5.3.2或以上版本;
  • PHPUnit 3.5.11或以上。

配置Git

用你的真实姓名和工作电子邮件地址设置你的用户信息:

1 2
$ git配置——global user.name“你的名字”$ git配置——全局用户。电子邮件you@example.com

提示

如果您是Git的新手,强烈建议您阅读优秀的免费版本ProGit书。

提示

如果你的IDE在项目目录中创建配置文件,你可以使用global.gitignore文件(适用于所有项目)或. /信息/排除文件(每个项目)忽略它们。看到Github的文档欧宝官网下载app

提示

Windows用户:在安装Git时,安装程序会询问如何处理行尾,并建议将所有Lf替换为CRLF。如果您希望对Symfony做出贡献,这是错误的设置!ob娱乐下载选择as-is方法是最好的选择,因为git会将换行符转换为存储库中的换行符。如果你已经安装了Git,你可以输入以下命令检查这个设置的值:

1
$ git config core. selflf

这将返回“false”,“input”或“true”,“true”和“false”是错误的值。通过输入将其设置为另一个值:

1
$ git配置——全局核心。autocrlf输入

如果希望仅为活动存储库设置——global,则使用——local替换——global

获取Symfonob娱乐下载y源代码

获取Symfonob娱乐下载y2源代码:

  • 创建一个GitHub登记和签到;
  • 叉的ob娱乐下载Symfony2库(点击“Fork”按钮);
  • 在“fork操作”完成后,在本地克隆你的fork(这将创建一个“symfony”目录):ob娱乐下载
1
git美元克隆git@github.com:用户名/ symfob娱乐下载ony.git
  • 将上游存储库添加为远程:
1 2
cdob娱乐下载Symfony $ git远程添加上游git://github.com/symfony/symfony.git

检查当前的测试是否通过

现在已经安装了Syob娱乐下载mfony2,请检查您的环境中所有的单元测试是否都通过了文档

步骤2:完善补丁

许可

在开始之前,您必须知道您要提交的所有补丁必须在麻省理工学院的许可,除非在提交中明确指定。

选择正确的分支

在使用补丁之前,必须确定需要在哪个分支上工作。如果你想添加一个新特性,分支应该基于“master”分支。但是,如果你想修复一个bug,请使用出现bug的Symfony的旧版本(比如“2.0”)。ob娱乐下载

请注意

所有合并到维护分支中的错误修复也会定期合并到最近的分支中。例如,如果你为' 2.0 '分支提交了一个补丁,这个补丁也会被核心团队应用在' master '分支上。

创建主题分支

每次你想要为一个bug或者一个增强做补丁的时候,创建一个topic分支:

1
$ git checkout -b BRANCH_NAME master

或者,如果你想为2.0分支提供一个错误修复,首先在本地跟踪远程' 2.0 '分支:

1
$ git checkout -t origin/2.0

然后在2.0分支之外创建一个新的分支来修复bug:

1
$ git checkout -b BRANCH_NAME 2.0

提示

为您的分支使用一个描述性的名称(' ticket_XXX ',其中' XXX '是票号,这是一个很好的错误修复约定)。

上面的签出命令自动将代码切换到新创建的分支(使用' git branch '检查您正在处理的分支)。

完善你的补丁

你想做多少就做多少,提交多少就提交多少;但请记住以下几点:

  • 阅读Symfonyob娱乐下载约定并遵循编码标准(使用' git diff -check '来检查后面的空格——也可以阅读下面的提示);
  • 添加单元测试,以证明bug已修复或新功能确实有效;
  • 尽量不要破坏向后兼容性(如果你必须这样做,尝试提供一个兼容层来支持旧的方式)——破坏向后兼容性的补丁被合并的机会更少;
  • 做原子和逻辑上独立的提交(使用' git rebase '的力量来拥有一个干净和逻辑的历史);
  • 排除那些与修改编码标准或修改自己代码中的错别字无关的提交;
  • 永远不要在一些现有的代码中修正编码标准,因为这会使代码审查更加困难;
  • 编写好的提交消息(参见下面的提示)。

提示

您可以通过执行以下命令检查补丁的编码标准脚本):

1 2
cd/path/to/ob娱乐下载symfony/src $ PHP symfony-cs-fixer。Phar fix。ob娱乐下载Symfony20Finder

提示

好的提交消息由摘要(第一行)、空行和更详细的描述组成。摘要应该以方括号中的正在处理的组件开始((DependencyInjection),(FrameworkBundle),……)。使用动词(固定的……,添加……,…)来开始摘要,并且不要在结尾添加句点。

准备提交补丁

当你的补丁不是关于bug修复(例如,当你添加一个新功能或改变一个现有功能时),它还必须包括以下内容:

  • 对相关CHANGELOG文件(以下简称“CHANGELOG”)中的更改的解释(公元前打破)或者是(弃用)在相关情况下必须使用前缀);
  • 如果更改破坏了向后兼容性,或者如果您弃用了某些最终会破坏向后兼容性的东西,则相关upgrade文件中关于如何升级现有应用程序的解释。

步骤3:提交补丁

当您觉得您的补丁已经准备好提交时,请遵循以下步骤。

调整你的补丁

在提交你的补丁之前,更新你的分支(如果你需要一段时间来完成你的更改,就需要更新):

1 2 3 4 5
$ git checkout master $ git fetch upstream $ git merge upstream/master $ git checkout BRANCH_NAME $ git rebase master

提示

如果您正在进行错误修复,请将' master '替换为' 2.0 '

当做变基命令时,您可能必须修复合并冲突。git状态会向你展示unmerged文件。解决所有冲突,然后继续重基:

1 2
$ git add…#添加解析文件$ git rebase——继续

检查所有测试仍然通过,并远程推动分支:

1
$ git push origin BRANCH_NAME

提出拉请求

对象上的拉取请求ob娱乐下载symfony / symfonyGithub库。

提示

注意将您的pull请求指向ob娱乐下载symfony: 2.0如果您希望核心团队基于2.0分支进行错误修复。

为了简化核心团队的工作,总是在你的pull request消息中包含修改过的组件,比如:

1 2
[Form] [Validator] [FrameworkBundle]添加了一些东西

拉请求描述必须在顶部包括以下检查表,以确保您的贡献可以被审查,没有不必要的反馈循环,并且您的贡献可以尽快被包括到Symfony2中:ob娱乐下载

1 2 3 4 5 6 7 8 9 10
| Q | A | ------------- |—| Bug修复?| [yes|no] |新特性?| [yes|no] | BC断裂?| [yes|no] |弃用?| [yes|no] |测试通过?|[是|否]|固定票证|[由PR固定的票证列表,逗号分隔]| License | MIT | Doc PR |[参考文档PR(如有)]欧宝官网下载app

现在提交的示例如下所示:

1 2 3 4 5 6 7 8 9 10
| Q | A | ------------- |—| Bug修复?| no |新特性?|没有| BC断裂?|没有|弃用?|没有|测试通过?|是|固定门票| #12,#43 |许可证| MIT | Doc PR | symfony/symfony-docs#1ob娱乐下载23

整个表格必须包括在内删除你认为不相关的行)。对于简单的拼写错误,PHPDocs中的微小更改,或翻译文件中的更改,使用较短版本的检查列表:

1 2 3 4
| Q | A | ------------- |—|固定门票|[由PR固定的门票列表,逗号分隔]| License | MIT

一些问题的答案会引发更多的要求:

  • 如果你对“Bug修复?”的回答是肯定的,检查该Bug是否已经在Symfony问题中列出,并在“修复票据”中引用它/它们;ob娱乐下载
  • 如果你对“新功能?”的回答是肯定的,你必须向文档提交一个pull request,并在“Doc PR”部分引用它;欧宝官网下载app
  • 如果您回答“BC中断?”,则补丁必须包含相关CHANGELOG和UPGRADE文件的更新;
  • 如果“Deprecations?”回答为“是”,则补丁必须包含相关CHANGELOG和UPGRADE文件的更新;
  • 如果对“测试通过”回答“否”,则必须向待办事项列表中添加一个项目,其中包含修复测试必须执行的操作;
  • 如果“许可证”不是MIT,就不要提交拉请求,因为它无论如何都不会被接受。

如果上面的一些要求不满足,创建一个待办事项列表,并添加相关项目:

1 2 3
-[]修复测试,因为它们还没有更新-[]向文档提交更改-[]记录BC中断欧宝官网下载app

如果代码还没有完成,因为你没有时间完成它,或者因为你想要对你的工作得到早期的反馈,在待办事项列表中添加一个项目:

1 2
-[]完成代码-[]收集修改的反馈

只要您在待办事项列表中有项目,请在拉取请求标题前加上“[WIP]”。

在拉取请求描述中,尽可能详细地描述您的更改(不要犹豫给出代码示例来说明您的观点)。如果您的pull请求是关于添加新功能或修改现有功能,请解释这些更改的基本原理。拉取请求描述有助于代码审查,并在代码合并时作为参考(拉取请求描述及其所有相关注释是合并提交消息的一部分)。

除了这个“代码”的拉请求外,还必须向欧宝官网下载app文档存储库适时更新文档。欧宝官网下载app

重做补丁

根据对拉请求的反馈,您可能需要重做您的补丁。在重新提交补丁之前,使用上游/主上游/ 2.0,不要合并;并将其推至原点:

1 2
$ git rebase -f upstream/master $ git push -f origin BRANCH_NAME

请注意

当做推,力,总是显式地指定分支名称,以避免在repo (——力告诉git你真的想搞砸事情,所以要小心行事)。

通常,版主会要求你“压缩”你的提交。这意味着您将把多个提交转换为一次提交。要做到这一点,使用rebase命令:

1 2
$ git rebase -i HEAD~3 $ git push -f origin BRANCH_NAME

这里的数字3必须等于分支中提交的数量。在你输入这个命令后,一个编辑器会弹出一个提交列表:

1 2 3
选择1a31be6第一次提交,选择7fc64b4第二次提交,选择7d33018第三次提交

要将所有提交压缩到第一个提交中,请在第二个和最后一个提交之前删除单词“pick”,并将其替换为单词“squash”或“s”。当您保存时,git将开始重基,如果成功,将要求您编辑提交消息,默认情况下,这是所有提交的提交消息的列表。完成后,执行push命令。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。