在提交历史记录中查找Linux内核快照

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在提交历史记录中查找Linux内核快照相关的知识,希望对你有一定的参考价值。

我有一个公司为其设备提供的Linux内核的快照,根据GPL的规定。

我还有一个linux内核作为git存储库的历史(许多提交比快照更新,许多更新)。

我现在想要确定公司与官方内核树分离的“最小公分母”提交。使用此功能后,我希望将公司所做的更改与公司与官方内核源代码分离后对官方内核所做的更改分开。

这可能吗? (至少是一个很好的估计。)

答案

对另一个答案的修改,你可以采取差异本身

  1. 将您的树添加为孤立提交,如here所述

用命令做:

git checkout --orphan patched_kernel
git rm -rf .
<copy or extract the tree to current directory>
git add .
git commit -m 'Patched kernel'
  1. 对于可疑范围内的提交,运行git diff --shortstat COMMIT,它将打印“N行改变,M插入,K删除”之类的内容。您需要找到最少计数的提交。
另一答案

你可以近距离接触,但可能无法获得完全匹配。

这是我要做的:

  1. 检查您必须找到的树的Makefile(例如4.15)。使用它来缩小可能提交的范围(仅限Maekfile具有此版本的那些)
  2. 获取树中所有文件的SHA1签名 - 例如 找 。 -not -path ./.git -type f -exec sha256sum {} ; > kernel.log
  3. 对范围中的每个提交执行相同操作并保留生成的文件
  4. 从您拥有的树和每次提交中区分日志。具有最小差异的那个是你最好的选择。它们可能不止一种选择

以上是关于在提交历史记录中查找Linux内核快照的主要内容,如果未能解决你的问题,请参考以下文章

Linux快照与克隆

SVN和GIT提交历史记录和代码差异

linux中Shell历史命令记录文件的路径是啥?

git撤销操作和历史查看(git log)

git 命令 查看历史提交 git log

如何在 Git 历史记录中 grep(搜索)已提交的代码