在提交历史记录

时间:2018-01-02 09:45:41

标签: git linux-kernel

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

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

我现在想要确定最小公分母"承诺公司与官方内核树分道扬..使用这个我想将公司所做的更改与公司与官方内核源代码分离后对官方内核所做的更改分开。

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

2 个答案:

答案 0 :(得分:2)

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

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

    使用命令执行:

    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)

你可以靠近,但可能无法完全匹配。

以下是我要做的事情:

  1. 检查您要查找的树的Makefile(例如4.15)。使用它来缩小可能提交的范围(仅限Maekfile具有此版本的提交)

  2. 获取树中所有文件的SHA1签名 - 例如

    找到。 -not -path ./.git -type f -exec sha256sum {} \; &GT; kernel.log

  3. 对范围内的每个提交执行相同操作并保留生成的文件

  4. 从您拥有的树和每次提交中扩展日志。具有最小差异的那个是你最好的选择。它们可能不止一个选项