Skip to contentSkip to conversation

Combined diff with name-only option

DISCUSSION Janusz Białobrzewski 2 participants 2 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

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.

#1 lore raw
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.