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.
Junio C Hamano <gitster <at> pobox.com> writes:
Chico Sokol <chico.sokol <at> gmail.com> writes:
quoted
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.
I always wondered why this is the sole object format where SHA-1 is in 20-
byte binary format and not 40-chars hexadecimal string format...
--
Jakub Narębski
Thanks!
By the way, where can I find this kind of specification? I couldn't
find the spec of tree objects here:
https://github.com/git/git/tree/master/Documentation
--
Chico Sokol
On Wed, Jun 12, 2013 at 11:06 AM, Jakub Narebski [off-list ref] wrote:
Junio C Hamano <gitster <at> pobox.com> writes:
quoted
Chico Sokol <chico.sokol <at> gmail.com> writes:
quoted
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.
I always wondered why this is the sole object format where SHA-1 is in 20-
byte binary format and not 40-chars hexadecimal string format...
--
Jakub Narębski
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html