Jeff King <peff@xxxxxxxx> writes: > I have not been following the thread closely, but I do not recall seeing > anyone mention that the reason for the sha1-output is handing > only a single commit-ish to diff-tree is what puts it into its log-like > mode. Actually asking for a two-endpoint tree diff: > > git diff-tree --quiet --ignore-space-change $commit^ $commit > > will do what you want. Yeah, if we were living in an ideal world equipped with a time machine, I would redesign "git diff-tree $commit" so that it does not show the commit object name in its output at all, with or without "--quiet". In "git rev-list ... | git diff-tree --stdin" output, the commit object name is absolutely necessary, with or without --quiet, as it serves as the sign that the output switched to talk about a different commit. But the case that feeds a single commit to the command, used as a poor-man's "git show $commit", does not need one---the caller knows exactly which commit the output is about. It is an unfortunate historical accident that a single commit usage is defined to be a degenerate case of feeding a sequence of commits to the command and the length of the sequence happens to be one. "diff-tree $commit" could instead have been defined as a short-hand for "diff-tree $commit^ $commit", but (1) we do not live in an ideal world, and (2) it ignores $commit^2 and later parents. This is a tangent, but I suspect that the current implementation of "diff-tree --stdin --quiet" may be buggy and does not consistently show the commits that touch the given path. $ git rev-list master..jc/rerere | git diff-tree --stdin -s rerere.h gives what is expected (shows the commit object names, but being silent on the differences), while s/-s/--quiet/ seems to omit every other commit from the output, or something silly like that. I haven't dug into why that happens, but possible ways to fix that are to make "--quiet" output all (making it consistent with "-s") or no (making the command totally silent) output at all ;-). -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html