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

checkout -m dumping core

From
Tomas Carnecky <tom@dbservice.com>
Date
Jan 5, 2010, 18:15 UTC
Message-ID
<4B4381CA.1080504@dbservice.com>
git version 1.6.6.78.gbd757c

HEAD points to a non-existent branch refs/heads/master. Normal checkout origin fails with: error: Entry '.cvsignore' would be overwritten by merge. Cannot merge. (the working tree does indeed contain this file). So I tried checkout -m and git crashed. Workaround for me was reset --hard origin; checkout origin. I have the repository backed up in case someone wants to try themselves.

$ gdb `which git` GNU gdb 6.8 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i386-pc-solaris2.11"... (gdb) run checkout -m origin Starting program: /export/home/tomc/local/git/bin/git checkout -m origin warning: Lowest section in /lib/libpthread.so.1 is .dynamic at 00000074

Program received signal SIGSEGV, Segmentation fault.
0x080788fa in cmd_checkout (argc=0, argv=0x8047538, prefix=0x0) at 
builtin-checkout.c:450
450                             merge_trees(&o, new->commit->tree, work,
(gdb) list
445                             ret = reset_tree(new->commit->tree, 
opts, 1);
446                             if (ret)
447                                     return ret;
448                             o.branch1 = new->name;
449                             o.branch2 = "local";
450                             merge_trees(&o, new->commit->tree, work,
451                                     old->commit->tree, &result);
452                             ret = reset_tree(new->commit->tree, 
opts, 0);
453                             if (ret)
454                                     return ret;
(gdb) p o
$1 = {branch1 = 0x8047650 "origin", branch2 = 0x0, subtree_merge = 0, 
buffer_output = 1, verbosity = 0, diff_rename_limit = -1, 
merge_rename_limit = -1, call_depth = 0, obuf = {alloc = 0, len = 0, buf 
= 0x81643ac ""}, current_file_set = {
     items = 0x0, nr = 0, alloc = 0, strdup_strings = 1}, 
current_directory_set = {items = 0x0, nr = 0, alloc = 0, strdup_strings 
= 1}}
(gdb) p new
$2 = {name = 0x8047650 "origin", path = 0x8166438 "refs/heads/origin", 
commit = 0x8168f48}
(gdb) p work
$3 = (struct tree *) 0x8174f90
(gdb) p old
No symbol "old" in current context.
(gdb) p result
$4 = (struct tree *) 0xfefc81be
(gdb)
Next: Daniel
Message 1 of 3 in “checkout -m dumping core”
  1. Tomas CarneckyJan 5, 2010
  2. DanielJan 6, 2010
  3. Junio C HamanoJan 7, 2010

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.