On Wed, May 23, 2018 at 07:10:58PM +0200, SZEDER Gábor wrote: > $ git log --oneline master..ba95710a3b -- ci/ > ea44c0a594 Merge branch 'bw/protocol-v2' into jt/partial-clone-proto-v2 > > But as far as I can tell, there are no changes in the 'ci/' directory > on any of the merge's parents: > > $ git log --oneline master..ea44c0a594^1 -- ci/ > # Nothing. > $ git log --oneline master..ea44c0a594^2 -- ci/ > # Nothing! Hmm. That commit does touch "ci/" with respect to one of its parents. It should get simplified away because it completely matches the other parent, so it does sound like a bug. > This is not specific to the 'ci/' directory, it seems that any > untouched directory does the trick: > > $ git log --oneline master..ea44c0a594 -- contrib/coccinelle/ t/lib-httpd/ > ea44c0a594 Merge branch 'bw/protocol-v2' into jt/partial-clone-proto-v2 Both of those directories also differ between one parent. If you try it with "contrib/remote-helpers", which does not, then the commit does not appear. So it does seem like a bug where we should be simplifying away the merge but are not (or I'm missing the corner case, too ;) ). > I get the same behavior with Git built from current master and from > past releases as well (tried it as far back as v2.0.0). I keep some older builds around, and it does not reproduce with v1.6.6.3 (that's my usual goto for "old"). Bisecting turns up d0af663e42 (revision.c: Make --full-history consider more merges, 2013-05-16). It looks like an unintended change (the commit message claims that the non-full-history case shouldn't be affected). -Peff