git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* confusion with git diff-tree output
@ 2009-10-21 17:43 David Roundy
  2009-10-21 17:51 ` Jan Krüger
  0 siblings, 1 reply; 7+ messages in thread
From: David Roundy @ 2009-10-21 17:43 UTC (permalink / raw)
  To: git

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)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: confusion with git diff-tree output
  2009-10-21 17:43 confusion with git diff-tree output David Roundy
@ 2009-10-21 17:51 ` Jan Krüger
  2009-10-21 22:23   ` David Roundy
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Krüger @ 2009-10-21 17:51 UTC (permalink / raw)
  To: David Roundy; +Cc: git

> David Roundy <roundyd@physics.oregonstate.edu> 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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: confusion with git diff-tree output
  2009-10-21 17:51 ` Jan Krüger
@ 2009-10-21 22:23   ` David Roundy
  2009-10-21 22:42     ` Jan Krüger
  2009-10-23  0:54     ` Jeff King
  0 siblings, 2 replies; 7+ messages in thread
From: David Roundy @ 2009-10-21 22:23 UTC (permalink / raw)
  To: git

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 <jk@jk.gs> wrote:
> 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. ;)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: confusion with git diff-tree output
  2009-10-21 22:23   ` David Roundy
@ 2009-10-21 22:42     ` Jan Krüger
  2009-10-23  0:54     ` Jeff King
  1 sibling, 0 replies; 7+ messages in thread
From: Jan Krüger @ 2009-10-21 22:42 UTC (permalink / raw)
  To: David Roundy; +Cc: git

> David Roundy <roundyd@physics.oregonstate.edu> 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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: confusion with git diff-tree output
  2009-10-21 22:23   ` David Roundy
  2009-10-21 22:42     ` Jan Krüger
@ 2009-10-23  0:54     ` Jeff King
  2009-10-24  6:36       ` Junio C Hamano
  1 sibling, 1 reply; 7+ messages in thread
From: Jeff King @ 2009-10-23  0:54 UTC (permalink / raw)
  To: David Roundy; +Cc: git

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: confusion with git diff-tree output
  2009-10-23  0:54     ` Jeff King
@ 2009-10-24  6:36       ` Junio C Hamano
  2009-10-24  9:51         ` Jeff King
  0 siblings, 1 reply; 7+ messages in thread
From: Junio C Hamano @ 2009-10-24  6:36 UTC (permalink / raw)
  To: Jeff King; +Cc: David Roundy, git

Jeff King <peff@peff.net> writes:

> 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

Just to make sure, the Porcelain "diff" does recurse even with --raw 
and "diff-tree" doesn't for historical reasons, right?

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: confusion with git diff-tree output
  2009-10-24  6:36       ` Junio C Hamano
@ 2009-10-24  9:51         ` Jeff King
  0 siblings, 0 replies; 7+ messages in thread
From: Jeff King @ 2009-10-24  9:51 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: David Roundy, git

On Fri, Oct 23, 2009 at 11:36:59PM -0700, Junio C Hamano 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
> 
> Just to make sure, the Porcelain "diff" does recurse even with --raw 
> and "diff-tree" doesn't for historical reasons, right?

Yes, that's right (and yes, I just checked it to be double sure).

-Peff

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-10-24  9:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-21 17:43 confusion with git diff-tree output David Roundy
2009-10-21 17:51 ` Jan Krüger
2009-10-21 22:23   ` David Roundy
2009-10-21 22:42     ` Jan Krüger
2009-10-23  0:54     ` Jeff King
2009-10-24  6:36       ` Junio C Hamano
2009-10-24  9:51         ` Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).