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

问题描述 投票:1回答:2

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

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

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

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

git linux-kernel
2个回答
2
投票

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

  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
投票

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

这是我要做的:

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