因此,我有兴趣将SCHED_REALTME算法的第一个版本作为源树的一部分(在3.14版中引入到Linux中)https://en.wikipedia.org/wiki/SCHED_DEADLINE。我检出了存储库,并从 master 进行了以下操作:
git log --diff-filter=A -- [path to the deadline.c file]
它向我展示了该提交:
commit aab03e05e8f7e26f51dee792beddcb5cca9215a5
Author: Dario Faggioli <raistlin@linux.it>
Date: Thu Nov 28 11:14:43 2013 +0100
但是在Wikipedia页面(上面的链接)上,他们说算法是在此提交a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8中首先合并到Linux树中,而我确实能够检出此提交并查看文件。
问题。我传递给git log
的选项不是应该向我显示来自Wikipedia的提交吗?
答案 0 :(得分:1)
维基百科页面上显示:
最新版本已合并到主线Linux内核中(提交 编号a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8 [30]),并且自 然后是它的常规部分。
所以他们没有说这是该代码的第一个介绍。这对应于两个提交的分析:
commit aab03e05e8f7e26f51dee792beddcb5cca9215a5
Author: Dario Faggioli <raistlin@linux.it>
Date: Thu Nov 28 11:14:43 2013 +0100
commit a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8
Merge: 9326657abe1a eaad45132c56
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date: Mon Jan 20 10:42:08 2014 -
因此aab03e05e8f7e26f51dee792beddcb5cca9215a5
明显早于a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8
。还有
git merge-base aab03e05e8f7e26f51dee792beddcb5cca9215a5 a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8
告诉我他们共同的祖先是什么,答案是:
aab03e05e8f7e26f51dee792beddcb5cca9215a5
所以这似乎是引入deadline.c
文件的真正的祖先提交。
git log --diff-filter=A
完成了您期望的工作:)
答案 1 :(得分:-1)
您需要指定--all
分支,可能还需要指定--follow
来检测文件重命名
git log --all --follow --diff-filter=A -- [path to the deadline.c file]