threads / discuss / 39829

Combined diff with name-only option

Subject: Combined diff with name-only option

## tl;dr

2 messages between Jul 10, 2015 and Jul 10, 2015.

replies: 1people: 2as markdown or json

Janusz Białobrzewski· Jul 10, 2015, 10:39 UTC · lore
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.

Junio C Hamano· Jul 10, 2015, 17:47 UTC · re: Janusz Białobrzewski · lore

Re: Combined diff with name-only option

Janusz Białobrzewski  <Janusz.Bialobrzewski@biu.pl> writes:
> 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.

← back to recent threads