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



我遇到了一个Git现象kernel.org稳定回购,我无法完全解释:

有一个我很好奇的特定补丁(下面的提交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和master可以访问?从v5.10-rc4到v5.10.X,可能做了什么来隐藏补丁?

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

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

我们还可以观察到,这种合并操作正好发生在v5.10v5.11-rc1之间,这是完全正常的,也是意料之中的:每次发布新内核时,都会遵循一个两周的合并窗口,旨在合并到目前为止不同维护人员准备的所有分支。一旦这两周完成,合并就停止了,因此开始了稳定阶段,这将导致不同的候选版本-rc1-rcx(通常是7或8(,然后内核被认为是稳定的,并依次发布新版本。

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

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

你可以试试:

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

…以便更容易地检索。我还建议您使用诸如tig之类的git浏览器来浏览您的历史记录。

最新更新