我想获得Linux稳定分支中第一个补丁的提交日期。根据维基百科的说法,Linux 3.2已经在 2012年1月5日创建。
我选择git rev-list
命令:
git rev-list --merges --boundary --format="%cd" |tail -1 (Wed **Jan 4** 15:03:06 2012 -0800)
git rev-list --merges --format="%cd" | tail -1 (Sun Apr 17 14:47:24 2005 -0700)
git rev-list --no-merges --boundary --format="%cd" (Wed **Jan 4** 15:03:49 2012 -0800)
git rev-list --no-merges --format="%cd" (Sat Apr 16 15:20:36 2005 -0700)
有趣的是,我使用命令git rev-list --merges --boundary --format="%cd" |tail -1
得到的补丁如下:
The date is (Wed Jan 4 15:03:06 2012 -0800)
摘要为:minixfs: misplaced checks lead to dentry leak
然而,命令git rev-list --no-merges --boundary --format="%cd" |tail -1
中的补丁如下:
摘要:Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
rev-list的定义:
--boundary
Output uninteresting commits at the boundary, which are usually not shown.
--merges
Print only merge commits. This is exactly the same as --min-parents=2.
--no-merges
Do not print commits with more than one parent. This is exactly the same as --max-parents=1.
我的问题是:
为什么我们必须添加--boundary
才能获得第一次提交?
为什么合并修补程序只有一个父项时,无合并修补程序有两个父项?是因为转发清单吗?