Jeff King <peff@xxxxxxxx> writes: > 2. It doesn't catch all cases where a particular path is interesting. > Consider a merge with parent blobs X and Y for a particular path, > and end result Z. That should be interesting according to "-c", > because the result doesn't match either parent. And it should be > interesting even with "--find-object=X", because "X" went away in > the merge. > > But because we perform each pairwise diff independently, this > confuses the intersection code. The change from X to Z is still > interesting according to --find-object. But in the other parent we > went from Y to Z, so the diff appears empty! That causes the > intersection code to think that parent didn't change the path, and > thus it's not interesting for "-c". Hmmmm.... > +test_expect_success 'do not detect merge that does not touch blob' ' > + git checkout -B merge interesting && > + git merge -m "untouched blob" base && > + git diff-tree --format=%s --find-object=$blob -c --name-status HEAD >actual && You learn new things every day ;-) I've always thought that for --find-object to do a good job, you'd need "--full-history" and perhaps "-m". Especially, I didn't expect "-c" or "--cc" to make a difference.