Karl Hasselström <kha@xxxxxxxxxxx> writes: > I'm trying to use diff-tree --stdin to diff several trees in one go. > But I just get error messages when I feed it two space-separated trees > (one commit works fine): > > $ echo $(git rev-parse HEAD^{tree}) $(git rev-parse HEAD^^{tree}) | git diff-tree -p --stdin > error: Object 7bfd9971f77438858e412be0219ec78afb3ca46f not a commit > > This is at odds with the documentation: > > --stdin:: > When '--stdin' is specified, the command does not take > <tree-ish> arguments from the command line. Instead, it > reads either one <commit> or a pair of <tree-ish> > separated with a single space from its standard input. > > I tried reading the code to figure out what's wrong, and as far as I > can tell the code to do this is there, but seems to be protected by > logic that aborts everything unless the whole input line is a valid > commit. Or maybe I'm just confused ... No, the documentation was made wrong during 1.2.0 timeperiod. The feature of --stdin to take a commit and its parents on one line was broken before that to support the common rev-list --parents $commits... -- $paths... | diff-tree --stdin -v -p usage pattern by Porcelains. For diff-tree to talk sensibly about commits, it needs to see commits, not just trees. -- 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