Re: BUG? git log --no-merges shows grafted merges in shallow clones
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:08:30
Matthieu Moy [off-list ref] writes:
Junio C Hamano [off-list ref] writes:quoted
I do not think this is limited to shallow but for grafts in general.Probably yes. I happen to only use grafts in shallow clones ;-).quoted
cat-file is low-level to show the bare metal, but by using these facility you asked Git to give you an imaginary history where that commit is the root commit--and that is why it is shown, I think. What does it do if you say "git -c log.showRoot=false log -p"?I get the commit without the patch: commit c3c1cc25b27d448e9ef67b265a11be8735ff2df4 (grafted) Author: Matthieu Moy [off-list ref] Date: Mon Aug 31 16:32:20 2015 +0200 Merge remote-tracking branch 'edward/utf-8-email-support4' Without "-c log.showRoot=false" I get a big patch (diff of the commit against the empty tree).
... which shows that Git is consistently pretending as if that commit is the root commit, which in turn means that it is correct for "log --no-merges" to not peek into the information at "cat-file commit" level.