内核维护者手册 - 修改补丁【ChatGPT】

发布时间 2023-12-08 21:35:37作者: 摩斯电码

修改补丁

如果你是一个子系统或分支的维护者,有时你需要稍微修改你收到的补丁才能合并它们,因为你的代码与提交者的代码并不完全相同。如果你严格遵守开发者证书的规则(c),你应该要求提交者重新生成补丁,但这完全是浪费时间和精力。规则(b)允许你调整代码,但这样做会非常不礼貌,因为你改变了提交者的代码并让他背书你的错误。为了解决这个问题,建议你在最后一个Signed-off-by头部和你的头部之间添加一行,说明你的修改内容。虽然这并不是强制性的,但在描述之前加上你的邮件和/或姓名,都用方括号括起来,足够明显地表明你对最后一刻的修改负责。示例:

Signed-off-by: Random J Developer <random@developer.example.org>
[lucky@maintainer.example.org: struct foo moved from foo.c to foo.h]
Signed-off-by: Lucky K Maintainer <lucky@maintainer.example.org>

如果你维护一个稳定的分支,并且同时想要给作者信用、跟踪变更、合并修复,并保护提交者免受投诉,这种做法尤其有帮助。请注意,在任何情况下都不能更改作者的身份(From头部),因为它是出现在变更日志中的身份。

特别提示给后向端口者:在提交消息的顶部(主题行之后)插入一个补丁来源的指示似乎是一种常见且有用的做法,以便于跟踪。例如,在一个3.x稳定版本中我们看到的是:

Date:   Tue Oct 7 07:26:38 2014 -0400

  libata: Un-break ATA blacklist

  commit 1c40279960bcd7d52dbdf1d466b20d24b99176c8 upstream.

而在一个旧的内核中,一旦补丁被后向端口,可能会出现以下内容:

Date: Tue May 13 22:12:27 2008 +0200

    wireless, airo: waitbusy() won't delay

    [backport of 2.6 commit b7acbdfbd1f277c1eb23f344f899cfa4cd0bf36a]

无论采用何种格式,这些信息都对于追踪你的代码树的人以及尝试排除你的代码树中的错误的人来说都是有价值的帮助。