【问题标题】:Verify if patches are present in linux-kernel验证 linux-kernel 中是否存在补丁
【发布时间】:2015-01-11 17:46:31
【问题描述】:

我正在尝试找出一个解决方案,您可以使用 linux-next 或任何 linux 内核分支并搜索代码中是否存在一组特定的补丁(补丁文件)。 这可能涉及对内核树进行 git pull,这不是问题,但如果包含一些补丁,我不确定如何进行批量搜索/比较。

应该使用实际的 .patch 文件来完成,还是搜索提交的 ID 就足够了? 有人可以为我提供一些代码或参考来说明如何实现吗? 谢谢!

【问题讨论】:

  • 这是一项不平凡的任务,因为许多补丁可能会在上游按顺序接触相同的文件。相当粗略的方法是尝试通过 git apply 应用它们。
  • 谢谢安迪,我们假设只想要验证最近的一组补丁,并且内核文件没有从其他来源更改,所以问题的变量是有限的,所以我不暂时不想增加太多复杂性。
  • 您可能从未尝试过这样的事情。很多时候,当我在开发一些驱动程序或内核模块时,我创建了一系列补丁。在提交它们并在上游合并之后(好吧,linux-next 在提交发生几天后反映了更改),我重新定位了我的本地分支。超过三分之一的案例失败了。这意味着您不能自动执行此操作,而是要获得一些启发式方法并确定补丁是否在上游。例如,尝试以相反的时间顺序应用它们。但是您必须事先将它们拆分为逻辑“系列”。

标签: git linux-kernel


【解决方案1】:

也许手动方法就足够了。如果您知道补丁触及的文件以及某些更改行的内容,您可以这样做:

git log -p remotes/origin/next -- path/to/file

这将为您提供该文件的全部历史记录,您可以手动搜索 (/) 更改的行。

找到相关提交的 ID 后,您可以使用 git show $id 列出整个提交并将其与您的补丁文件进行比较。

【讨论】:

    猜你喜欢
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多