git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Reading commit objects

From
Junio C Hamano <gitster@pobox.com>
Date
May 21, 2013, 22:20 UTC
Message-ID
<7v4ndwm0u8.fsf@alter.siamese.dyndns.org>
In-Reply-To
<CABx5MBQ57-=MPamvV-peZUdD_KDLX+5cy9vD7CL7p_Vz9BkvTg@mail.gmail.com>
Chico Sokol <chico.sokol@gmail.com> writes:
Show 7 quoted lines
> Hello,
>
> I'm building a library to manipulate git repositories (interacting
> directly with the filesystem).
>
> Currently, we're trying to parse commit objects. After decompressing
> the contents of a commit object file we got the following output:

Who wrote this commit object you are trying to read? Us, or your library (this question is to see if you are chasing the right problem)?

Show 9 quoted lines
> commit 191
> author Francisco Sokol <chico.sokol@gmail.com> 1369140112 -0300
> committer Francisco Sokol <chico.sokol@gmail.com> 1369140112 -0300
>
> first commit
>
> We hoped to get the same output of a "git cat-file -p <sha1>", but
> that didn't happened. From a commit object, how can I find tree object
> hash of this commit?

If you care about the byte-for-byte compatibility, never use "cat-file -p". That is meant for human consumption.

"git cat-file commit <sha1>" gives you the raw representation after inflating and stripping out the first "<type> SP <length> LF" line.

Previous: Shawn Pearce
Message 19 of 19 in “Reading commit objects”
  1. Chico SokolMay 21, 2013
  2. Felipe ContrerasMay 21, 2013
  3. John SzakmeisterMay 21, 2013
  4. Chico SokolMay 21, 2013
  5. Junio C HamanoMay 21, 2013
  6. Chico SokolMay 21, 2013
  7. Jonathan NiederMay 21, 2013
  8. Shawn PearceMay 22, 2013
  9. java zlib woes (was: Reading commit objects)Andreas Krey, May 22, 2013
  10. Shawn PearceMay 22, 2013
  11. Andreas KreyMay 27, 2013
  12. fetch delta resolution vs. checkout (was: java zlib woes)Andreas Krey, Jun 4, 2013
  13. Shawn PearceMay 22, 2013
  14. Chico SokolMay 22, 2013
  15. Shawn PearceMay 22, 2013
  16. Chico SokolMay 22, 2013
  17. Chico SokolMay 22, 2013
  18. Shawn PearceMay 22, 2013
  19. Junio C HamanoMay 21, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.