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

Re: Problem: `fatal: too-short tree object` when executing hash-object on tree

From
Johannes Sixt <j6t@kdbg.org>
Date
Aug 31, 2023, 17:10 UTC
Message-ID
<defa2a66-598e-4721-a644-680de0116dec@kdbg.org>
In-Reply-To
<0de414f8-f409-467f-a504-06a78f088981@app.fastmail.com>
Am 31.08.23 um 12:58 schrieb Gareth Hayes:
> Problem: I'm trying to reproduce the identifier of a tree object using `git cat-file -p <tree object identifier> | git hash-object -t tree --stdin`
XY-problem alert!?
Show 8 quoted lines
> This results in an error:
> `fatal: too-short tree object`
> 
> To replicate: 
> `git cat-file -p HEAD`
> `git cat-file -p <tree object identifier from output of above> | git hash-object -t tree --stdin`
> 
> This works for other object types but not trees. What am I doing wrong?

Recall that the -p in cat-file means "pretty" (-print). The data that makes up a tree object is far from pretty, hence, you can't feed it into git hash-object directly.

You can either turn the pretty-printed input into a tree object
   git cat-file -p $treeoid | git mktree
or hash the raw data
   git cat-file tree $treeoid | git hash-object -t tree --stdin
-- Hannes
Previous: Gareth HayesNext: Junio C Hamano
Message 2 of 3 in “Problem: `fatal: too-short tree object` when executing hash-object on tree”
  1. Gareth HayesAug 31, 2023
  2. Johannes SixtAug 31, 2023
  3. Junio C HamanoAug 31, 2023

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.