confusion with git diff-tree output

Subsystems: the rest

5 messages, 3 authors, 2016-06-15 · open the first message on its own page

confusion with git diff-tree output

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
diff --git a/Iolaus/Lcs2.hs b/Iolaus/Lcs2.hs
index dab4c53..0e3f305 100644
--- a/Iolaus/Lcs2.hs
+++ b/Iolaus/Lcs2.hs
(changes cut)

Re: confusion with git diff-tree output

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

Re: confusion with git diff-tree output

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. ;)

Re: confusion with git diff-tree output

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

Re: confusion with git diff-tree output

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.
It's due to hysterical raisins:

  http://article.gmane.org/gmane.comp.version-control.git/54078

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help