Combined diff with name-only option
Hello,
When I run:
git diff-tree --cc 511f273b99af4529f6eb30069bb9070dc73fbbb4
As expected, I get the diff for the files that are changed in both parents.
When I run:
git diff-tree --cc --name-only 511f273b99af4529f6eb30069bb9070dc73fbbb4
I get all the files listed including ones that are changed only in one parent.
I would expect to see only names of the files changed in both parents like in the case when --name-only parameter was not present. Is it a bug or is it done by design?
BR,
Janusz.
Quoted 1 line · Janusz Białobrzewski
Is it a bug or is it done by design?
I suspect the answer is "no and not really". The truth would be closer to: we didn't bother to write code in the command line parser to check and flag it as an error when "--cc" and "--name-only" is given together.
Unlike "-c" that works solely on the tree level changes, "--cc" looks into blob contents involved in the merge, but things like "--name-status", etc., do not work at blob levels (you can consider that part is "by design").
Similarly, if you make a whitespace-only change to a file and use
git diff-tree -b -p
you will still see the name of the commit object, but no patch.
git diff-tree -b --name-only
still reports the modified paths as tree-level differences.