我正在尝试破解Linux内核并添加/修改了一些头文件include/linux
。但是,当我使用以下命令生成补丁文件时diff
:
diff -uprN -X linux/Documentation/dontdiff \
linux-5.15 linux-srctree > patch.p1
我发现更改include/linux
未包含在内patch.p1
。然后我查看dontdiff
文件并找到以下几行(大约 158 行),这意味着它include/linux
从补丁文件中排除。
*lex.*.c
linux
logo_*.c
那么为什么要dontdiff
包含linux
?如何保存对补丁文件中标题的更改include/linux
?非常感谢。
内核补丁通常由 生成
git
— 在工作树中进行更改,并git diff
在那里使用,或者提交然后从提交中提取。git format-patch
因此dontdiff
可能不常用;排除由 处理.gitignore
,这比 的模式列表更具表现力diff -X
。在您的场景中,最简单的选择可能是
linux
从中删除该行dontdiff
。从长远来看,如果可能的话,请尝试在相关 git 存储库的克隆中工作并使用生成补丁git
。我怀疑之所以
linux
包括在内,dontdiff
是因为构建过程可以生成一个名为的二进制文件linux
(通常是vmlinux
,但um
“arch”将其链接到linux
)。该.gitignore
条目是为添加的arch/um
,后来被修改为仅适用于树的根以及其他几个条目。