> > To extend on this point a bit (even though this is not all that > urgent during the prerelease freeze), conceptually, the %(content) > field is understood in the larger picture like this: > > +--- (the whole thing) ----------------------------------------------+ > | | > | +--- "header" ---------------------------------------------------+ | > | | tree 678c03dca0a26afd746e8c8bb9e4aadc8bf479b1 | | > | | parent 378c7c6ad48c4ccddf9b534616a0e86f28440bd3 | | > | | author Junio C Hamano <gitster@xxxxxxxxx> 1621675665 +0900 | | > | | committer Junio C Hamano <gitster@xxxxxxxxx> 1621675741 +0900 | | > | +----------------------------------------------------------------+ | > | | > | +--- "contents" -------------------------------------------------+ | > | | | | > | | +--- "subject" ----------------------------------------------+ | | > | | | Git 2.32-rc1 | | | > | | +------------------------------------------------------------+ | | > | | | | > | | +--- "body" -------------------------------------------------+ | | > | | | Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> | | | > | | +------------------------------------------------------------+ | | > | | | | > | +----------------------------------------------------------------+ | > | | > +--------------------------------------------------------------------+ > Thank you for providing such a complete view. This also means that the "raw" of contents and tag will contain two parts: "header" and "contents". But for blobs and trees, they don’t have these things. > Even though %(header), when it is invented, would make perfect sense > for commits and tags, it will never make sense for trees and blobs. > Which means "contents", which is "the whole thing except for the > header part", would not, either. > Although we don’t have a %(header), but in fact we already have fragments of "%(numparent)", "%(parent)" %(tree)" (see grab_commit_values()) and "%(tag)"," %(type)","%(object)" (see grab_tag_values()), but they are not obtained through the "header" part of the raw object buffer. > There is no %(placeholder) to ask for "the whole thing", and that is > what you want to use for cat-file --batch if I am not mistaken, and > adding one would be a good idea. There is no %(header) yet, either, > but if somebody needs it for their scripts, it is clear where it fits > in the picture. > So I don't know if adding %(header) will cause duplication of functions. Thanks! -- ZheNing Hu