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

Bad error message

From
Robin Rosenberg (list subscriber) <robin.rosenberg.lists@dewire.com>
Date
May 4, 2006, 23:57 UTC
Message-ID
<200605041957.26194.robin.rosenberg.lists@dewire.com>
Hi, 
While playing with git I got the following "impossible" error message:

$ git commit --amend fatal: Ref HEAD is at 3cec3036287d6b24f7ad7f724f8bb9d4032fb1a3 but expected 3cec3036287d6b24f7ad7f724f8bb9d4032fb1a3

Since impossible things happen rarely, I was somewhat puzzled and it turned out not to be so impossible after all, but a rather typical C bug. Since I fixed my working directory using git-reset, I'm not sure how to verify the code (suggestions welcome), but I'm not sure if that's important since the code being replaced by this patch probably wasn't tested either. :/

Maybe someone could explain what might have been wrong with my work space (git status turned up nothing wrong or missing).

-- robin

--- git-1.3.1.orig/update-ref.c 2006-04-25 08:07:54.000000000 +0200 +++ git-1.3.1/update-ref.c 2006-05-04 16:30:04.000000000 +0200

@@ -43,8 +43,13 @@
                die("No such ref: %s", refname);

        if (oldval) {
-               if (memcmp(currsha1, oldsha1, 20))
-                       die("Ref %s is at %s but expected %s", refname, sha1_to_hex(currsha1), sha1_to_hex(oldsha1));
+               if (memcmp(currsha1, oldsha1, 20)) {
+                       char sha1str1[41];
+                       char sha1str2[41];
+                       strcpy(sha1str1, sha1_to_hex(currsha1));
+                       strcpy(sha1str2, sha1_to_hex(oldsha1));
+                       die("Ref %s is at %s but expected %s", refname, sha1str1, sha1str2);
+               }
                /* Nothing to do? */
                if (!memcmp(oldsha1, sha1, 20))
                        exit(0);
Next: Junio C Hamano
Message 1 of 2 in “Bad error message”
  1. Robin Rosenberg (list subscriber)May 4, 2006
  2. Junio C HamanoMay 5, 2006

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.