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

[PATCH] Improve on the 'invalid object' error message at commit time

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
Jul 14, 2009, 18:25 UTC
Message-ID
<alpine.LFD.2.01.0907141119190.13838@localhost.localdomain>
In-Reply-To
<alpine.LFD.2.01.0907141019380.13838@localhost.localdomain>

Not that anybody should ever get it, but somebody did (probably because of a flaky filesystem, but whatever). And each time I see an error message that I haven't seen before, I decide that next time it will look better.

So this makes us write more relevant information about exactly which file ended up having issues with a missing object. Which will tell whether it was a tree object, for example, or just a regular file in the index (and which one).

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
---

Not a big deal. But since somebody actually saw this message, let's just make it more informative.

A lot of the "these can't happen unless you're seriously screwed" messages aren't very good, because there is little upside when doing development. But let's try to improve on them in case they happen in the future.

Not that this would make debugging much easier, but one thing that I started wondering about was whether the problem Florian saw was about one of the files he had done "git add" on, or whether it was a tree entry that was the result of "find_subtree()".

 cache-tree.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/cache-tree.c b/cache-tree.c
index 16a65df..d917437 100644
--- a/cache-tree.c
+++ b/cache-tree.c
@@ -329,7 +329,8 @@ static int update_one(struct cache_tree *it,
 			entlen = pathlen - baselen;
 		}
 		if (mode != S_IFGITLINK && !missing_ok && !has_sha1_file(sha1))
-			return error("invalid object %s", sha1_to_hex(sha1));
+			return error("invalid object %06o %s for '%.*s'",
+				mode, sha1_to_hex(sha1), entlen+baselen, path);
 
 		if (ce->ce_flags & CE_REMOVE)
 			continue; /* entry being removed */
Previous: Stefan-W. HahnNext: Junio C Hamano
Message 8 of 9 in “Recover broken git repository?”
  1. Florian BreitwieserJul 14, 2009
  2. Alex RiesenJul 14, 2009
  3. Nicolas SebrechtJul 14, 2009
  4. Jakub NarebskiJul 14, 2009
  5. Linus TorvaldsJul 14, 2009
  6. Stefan-W. HahnJul 14, 2009
  7. Stefan-W. HahnJul 14, 2009
  8. Improve on the 'invalid object' error message at commit timeLinus Torvalds, Jul 14, 2009
  9. Junio C HamanoJul 14, 2009

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.