Thread (1 message) 1 message, 1 author, 2016-06-15

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help