微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

kernel.org stable Git:补丁可从 v5.11 访问,但不能从 v5.10-rcX 访问

如何解决kernel.org stable Git:补丁可从 v5.11 访问,但不能从 v5.10-rcX 访问

我在 kernel.org 稳定存储库中遇到了一个我无法解释的 Git 现象:

一个我很好奇的特定补丁(下面的提交 ID)无法从我期望的位置访问:

$ git describe 2224fc9efb2d6593fbfb57287e39ba4958b188ba
v5.10-rc3-262-g2224fc9efb2d  #  ( upstreamed bewteen v5.10-rc3 and v5.10-rc4) 

但现在,我明白了:

$ git log --no-merges --oneline v5.10-rc3..master | grep 2224fc9efb2d
2224fc9efb2d KVM: x86: Expose AVX512_FP16 for supported cpuID
$ git log --no-merges --oneline v5.10-rc3..v5.10-rc4 | grep 2224fc9efb2d 
$ git log --no-merges --oneline v5.10-rc3..v5.10 | grep 2224fc9efb2d
$ git log --no-merges --oneline v5.10-rc3..v5.11 | grep 2224fc9efb2d
2224fc9efb2d KVM: x86: Expose AVX512_FP16 for supported cpuID

问题:为什么该补丁从下一个 RC 标记无法访问*,从 v5.10 无法访问,但从 v5访问 .11.X,来自大师?从 v5.10-rc4 到 v5.10.X 可能做了什么隐藏补丁?

解决方法

问题:为什么该补丁从下一个 RC 标记无法访问*,从 v5.10 无法访问,但从 v5.11.X 和 master 可以访问?

仅仅是因为此提交位于从 v5.10-rc3 之后一段时间发生的 fork 生成的分支上(这解释了为什么这是第一个带注释的标记 git describe可以从中获取),但在这一刻之后很长一段时间合并回主要的 Linus 行。不容易找到,但似乎此分支已与提交 6a447b0e3151893f6d4a889956553c06d2e775c6(来自 Linus,2020 年 12 月 20 日)合并。

我们还可以观察到此合并操作恰好发生在 v5.10v5.11-rc1 之间,这是完全正常和预期的:每次发布新内核时,都会遵循 2 周的合并窗口,这意味着合并迄今为止不同维护者准备的所有分支。一旦这 2 周完成,合并就会停止,因此开始稳定阶段,这将导致名为 -rc1-rcx 的不同候选版本(通常为 7 或 8),然后内核被认为是稳定的并且一个新版本依次发布。

从 v5.10-rc4 到 v5.10.X 可能做了什么隐藏补丁?

不,那只是因为(如上所述),一旦第一个 -rc1 发布,内核中不再允许额外的贡献,这通常会给开发人员带来很大压力,因为他们要么管理按时发货,或者这将用于下一个内核(通常意味着 10 周后)。另一方面,维护人员不断告诉人们,如果不先集成也没关系。我们想要的是经过深入测试且稳定的东西(有些人发布了他们自己从未运行过的修改)。

你可以试试:

git log --graph 2224fc9efb2d6593fbfb57287e39ba4958b188ba^..6a447b0e3151893f6d4a889956553c06d2e775c6

... 更轻松地检索它。我还建议您使用 git 浏览器(例如 tig)来浏览您的历史记录。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。