From: David Roundy <hidden> Date: 2016-06-15 22:47:35
Hi all,
I've been struggling with trying to figure out how to make diff-tree
output the actual files changed. Below is the output when I run
diff-tree on a given commit. It reports that the directory is
modified, rather than that a single file within that directory is
modified. I can find out what *file* was modified by running
diff-tree -p --raw, which gives me output similar to what I expected
from a plain old diff-tree. Is there a flag that will make diff-tree
give this information?
As background, what I really want is --name-only, which rarely reports
the files modified, instead reporting the directories as modified, and
I've been struggling to figure out what is going on. The
documentation seems to imply that the --raw diff output will report
modified files, and I haven't found anything indicating when it would
report the directories containing the modified files instead.
Thanks!
David
$ git diff-tree fd99a198222c14cf42fee82087a13467ff4a8205
fd99a198222c14cf42fee82087a13467ff4a8205
:040000 040000 8cdb796ea801da99c34d8f60045d8eb08fbb0e41
66b67ea1763799c0b2ac01f6803177ca870f6544 M Iolaus
$ git diff-tree fd99a198222c14cf42fee82087a13467ff4a8205 -p --raw
fd99a198222c14cf42fee82087a13467ff4a8205
:100644 100644 dab4c531f3f69f08e5dc202ad8b6dfad9e8855fe
0e3f305e641a6440bb478765dfcd089e0420c155 M Iolaus/Lcs2.hs
From: Jan Krüger <hidden> Date: 2016-06-15 22:47:35
David Roundy [off-list ref] wrote:
I've been struggling with trying to figure out how to make diff-tree
output the actual files changed. Below is the output when I run
diff-tree on a given commit. It reports that the directory is
modified, rather than that a single file within that directory is
modified.
Tree objects are recursively nested, i.e.
66b67ea1763799c0b2ac01f6803177ca870f6544 M Iolaus
is a reference to another tree object... and since a file in that
subtree changed, a new tree object that contains a different file
record is now referenced as "Iolaus".
By default git diff-tree doesn't recurse, but you can use -r for that.
Which is documented, I might add. ;)
Jan
From: David Roundy <hidden> Date: 2016-06-15 22:47:35
You're right. I figured I must be overlooking something obvious, and
that was it. What surprised me was that -p implies -r, which is not
documented. Since the -p output was recursive, I incorrectly presumed
that this was the default.
David
On Wed, Oct 21, 2009 at 1:51 PM, Jan Krüger [off-list ref] wrote:
Tree objects are recursively nested, i.e.
quoted
66b67ea1763799c0b2ac01f6803177ca870f6544 M Iolaus
is a reference to another tree object... and since a file in that
subtree changed, a new tree object that contains a different file
record is now referenced as "Iolaus".
By default git diff-tree doesn't recurse, but you can use -r for that.
Which is documented, I might add. ;)
From: Jan Krüger <hidden> Date: 2016-06-15 22:47:35
David Roundy [off-list ref] wrote:
You're right. I figured I must be overlooking something obvious, and
that was it. What surprised me was that -p implies -r, which is not
documented. Since the -p output was recursive, I incorrectly presumed
that this was the default.
I suppose that's because you can't really display the diff for a
directory in any meaningful way other than recursing.
Jan
From: Jeff King <hidden> Date: 2016-06-15 22:47:36
On Wed, Oct 21, 2009 at 06:23:08PM -0400, David Roundy wrote:
You're right. I figured I must be overlooking something obvious, and
that was it. What surprised me was that -p implies -r, which is not
documented. Since the -p output was recursive, I incorrectly presumed
that this was the default.