如何使用 Debian 源代码包中的 quilt 来查看 .patch 所做的更改?

如何使用 Debian 源代码包中的 quilt 来查看 .patch 所做的更改?

我已经从 Debian sid 中​​拉取了luajitwith的源码包。apt source luajit当使用相同的命令解压包时,我看到了下一条消息:

dpkg-source: info: applying 0002-Enable-debugging-symbols-in-the-build.patch

尽管我没有要求自动应用任何补丁,但我想回顾一下这个补丁的作用,并可能恢复它。

在源码包的解压目录下,命令what-patch回复为quilt.自从第一次这样做以来,我从 sid 安装了 quilt (v0.66),然后尝试cd ./debian/patches执行以下操作:

quilt diff -P ./0002-Enable-debugging-symbols-in-the-build.patch

更清楚地了解该补丁在上游代码中应该做什么;然而被子却奇怪的回复道:

Patch ./0002-Enable-debugging-symbols-in-the-build.patch is not in series

所以我查看了该./series文件cat ./series并清楚地看到了这一行:

0002-Enable-debugging-symbols-in-the-build.patch

其中提到了其他 7 个补丁(1 个之前,6 个之后)。那么,还缺少什么呢?我去读了man quilt命令diff说:

生成最顶层或指定补丁中指定文件的差异。如果未指定文件,则包含所有已修改的文件。

并且,该-P开关可以:

为指定补丁创建差异。 (默认为最上面的补丁。)

看来我无法弄清楚 quilt 有什么问题,因为我以前从未这样做过,并且联机帮助页 + Debian wiki 在他们的教程中有点超越了这一点。

答案1

事实证明,这是命令末尾的quilt diff's-P和 the 的轻微混淆。显然,补丁文件名之前的前缀在使用时破坏了被子的分辨率,或者根本不需要。因此,正确的语法为:[file ...]quilt diff././series-P-P./

quilt diff -P ./0002-Enable-debugging-symbols-in-the-build.patch

是:

quilt diff -P 0002-Enable-debugging-symbols-in-the-build.patch

现在它显示了预期的差异。

相关内容