我需要一种方法来获取一组补丁,连续应用这些补丁后,可以将 Linux 5.x 升级到 Linux 5.y。
这是我尝试过的(我非常感谢您的反馈)为什么这不起作用):
- (使用 git 克隆 Linux)
git checkout v5.12
git format-patch v5.11
上述步骤产生约13,000个补丁文件。然而,当我将这些连续应用到Linux 5.11时,其中一些无法应用。具体来说,一些补丁块的应用方式存在错误。
另外,我还看到过这个问题:如何从邮件列表中获取 Linux 内核补丁集?,但是我从当前进程中获得的补丁难道不是通过电子邮件发送到 Linux 邮件列表的同一组补丁吗?
答案1
git-format-patch
不处理合并,因此它不能在您的场景中使用(Linux 内核开发过程广泛使用合并)。
要生成包含两个版本之间差异的补丁,请使用git diff
:
git diff v5.11..v5.12
内核社区为你发布了这样的补丁,查找以以下内容开头的文件patch-
。patch-5.12.xz
包含版本 5.11 和 5.12 之间的差异。
如果您想git
通过应用 5.11 和 5.12 之间的更改来重建存储库,请使用git pull
。