Weird revision walk behaviour
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- May 23, 2018, 17:10 UTC
- Message-ID
- <CAM0VKjkr71qLfksxZy59o4DYCM-x=podsCf6Qv+PzZuSe1gXZw@mail.gmail.com>
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?