Chico Sokol [off-list ref] writes:
Is there any official documentation of tree objets format? Are tree
objects encoded specially in some way? How can I parse the inflated
contents of a tree object?
We're suspecting that there is some kind of special format or
encoding, because the command "git cat-file -p <sha>" show me ...
While "git cat-file tree <sha>" generate ...
"cat-file -p" is meant to be human-readable form. The latter gives
the exact byte contents read_sha1_file() sees, which is a binary
format. Essentially, it is a sequence of:
- mode of the entry encoded in octal, without any leading '0' pad;
- pathname component of the entry, terminated with NUL;
- 20-byte SHA-1 object name.
sorted in a particular order.