There is this topic 'jt/partial-clone-proto-v2' currently cooking in 'next' and pointing to ba95710a3b ({fetch,upload}-pack: support filter in protocol v2, 2018-05-03). This topic is built on top of the merge commit ea44c0a594 (Merge branch 'bw/protocol-v2' into jt/partial-clone-proto-v2, 2018-05-02), which gives me the creeps, because it shows up in some pathspec-limited revision walks where in my opinion it should not: $ 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! And to add to my confusion: $ git log -1 --oneline master@{1.week.ago} ccdcbd54c4 The fifth batch for 2.18 $ git log --oneline master@{1.week.ago}..ea44c0a594 -- ci/ ea44c0a594 Merge branch 'bw/protocol-v2' into jt/partial-clone-proto-v2 $ git log -1 --oneline master@{3.week.ago} 1f1cddd558 The fourth batch for 2.18 $ git log --oneline master@{3.week.ago}..ea44c0a594 -- ci/ # Nothing, as it is supposed to be, IMHO. 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 $ git log --oneline master..ea44c0a594^1 -- contrib/coccinelle/ t/lib-httpd/ # Nothing. $ git log --oneline master..ea44c0a594^2 -- contrib/coccinelle/ t/lib-httpd/ # Nothing. $ git log --oneline master@{3.week.ago}..ea44c0a594 -- contrib/coccinelle/ t/lib-httpd/ # Nothing, but this is what I would expect. 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). So... what's going on here? :) A bug? Or am I missing something? Some history simplification corner case that I'm unaware of?