向开源社区提交patch

濮阳浩穰
2023-12-01

前言

平时我们可能会遇到一些开源项目的一些bug,往往先会查阅资料,看是否有对应的解决办法,无果的话,可以尝试自己解决该问题,然后可以提交自己的修改到开源社区。

博主在使用openwrt master分支的时候,就发现了特殊场景下的问题,在多日的debug后,解决了问题,并提交了patch给官方社区,这里记录下给官方提供patch的工程,以供以后使用。

因为修改部分是和uboot部分相关,所以uboot和openwrt都提交了对应的patch。

patch提交方式

- mailing list
- github web UI

说明:针对uboot,官方只支持mailing list的方式;openwrt即可采用mailing list,也可采用github的UI方式 。

这里先给出官方的文档,比较详细,推荐细读,链接为:Submitting patches

patch格式说明

这部分引用官方文档:Submission Guidelines

patch生成

  • 首先在本地修改,并提交对应的commit,注意提交的时候要符合上一小节中的格式要求
  • 然后使用git format-patch命令生成对应的patch文件
  • 生成完成后,需要调用脚本检查Patch文件格式。

git format-patch简单示例

  1. 针对提交生成补丁
$ git format-patch -1 # 最近提交的一次commit作为补丁内容
  1. 生成version N的版本
$ git format-patch -1 -vN # 生成version N
  1. 生成一系列的补丁
$ git format-patch -N # 最近提交的N次commit作为这一系列补丁的内容

发送patch

推荐使用git send-email进行发送,详细的配置可以参考:git 怎么用命令发送patch补丁、send-email下载和配置How to Use git send-email

注意发送的时候,如果需要抄送的话,需要指定-cc参数,下面是简单示例:

$ git send-email --to="openwrt-devel@lists.openwrt.org" --cc="xxx@yyy,xxx@yyy"0001-xxx.patch
 类似资料: