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

Re: Cryptic error messages?

From
Jeff King <peff@peff.net>
Date
Apr 22, 2009, 21:23 UTC
Message-ID
<20090422212351.GB16096@coredump.intra.peff.net>
In-Reply-To
<7vws9c1jdz.fsf@gitster.siamese.dyndns.org>
On Wed, Apr 22, 2009 at 02:14:00PM -0700, Junio C Hamano wrote:
Show 9 quoted lines
> > Actually, this is not true. receive-pack actually passes the error code
> > back to send-pack, which prints it. I think it is doing so because we
> > get that status separate from the individual ref status. But if you look
> > at receive-pack, it doesn't even bother trying individual refs if the
> > unpack failed; every ref will just get the "unpack failed" message.
> 
> How could it even "bother" to tell which ref?  The protocol says "Here are
> the values for the refs after you unpack the data that follows; here is
> the pack data for you", and then you find the error in the pack data.

Sorry, I don't understand. The errors are coming from receive-pack, so it sends:

  unpack <some error code>\n
  ng refs/heads/whatever n/a (unpacker error)\n

So what I mean is that receive-pack doesn't actually _do_ anything per-ref after the unpacker error. If there is an unpacker error, then it _always_ will say "n/a (unpacker error)".

So I wonder if it would be nicer for send-pack not to spew "unpack error: <blah blah>" to stderr, and instead put something meaningful into the status table, which is where people are expecting to find error codes. Even if it is repetitious. IOW, something like:

  To git://blah/blah
   ! [remote rejected] foo -> foo (unpacker exited with error code)
or if you are pushing several refs:
  To git://blah/blah
   ! [remote rejected] foo -> foo (unpacker exited with error code)
   ! [remote rejected] bar -> bar (unpacker exited with error code)
-Peff
Previous: Junio C HamanoNext: John Dlugosz
Message 7 of 8 in “Cryptic error messages?”
  1. John DlugoszApr 20, 2009
  2. Dmitry PotapovApr 21, 2009
  3. John DlugoszApr 21, 2009
  4. Jeff KingApr 22, 2009
  5. Jeff KingApr 22, 2009
  6. Junio C HamanoApr 22, 2009
  7. Jeff KingApr 22, 2009
  8. John DlugoszApr 22, 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.