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

dangling blob which is not dangling at all

From
DADomenico Andreoli <cavokz@gmail.com>
Date
Aug 1, 2007, 01:34 UTC
Message-ID
<20070801013450.GA16498@raptus.dandreoli.com>
Hi,
  first of all, I want to thank Linus and you all for git, it is
revolutionizing my every-day work flow. Exceptional.

Playing with my central bare git repository (yes, I am a former CVS/SVN user) and trying to lose data I discovered something I am not understanding well.

Running git fsck --no-reflogs I found some dangling objects (I have to say I enjoyed a lot in navigating commits, trees and blobs with plumbing... really!), two were commits and one was a blob.

One of the commits was there because I pushed (forcing) from a working repository after a git reset HEAD^. I checked it and removed it and all the other dependant objects until the blob which contained the new version of that file. It seems I even understood what I was doing! ;) Until here, everything had been smooth.

Second commit was something pushed from another repository but at the right head was strangely recorded with a different hash. Removing it, its tree and another sub-tree, no blob was pending. So the final blob containing the change was still used elsewhere, indeed by the "right head" of above. While I would expect this in a working repository where merging is happening all the day, it is not clear how it happened to my central repository, where nobody does any work. Any idea?

And now, what I think is a bug, the dangling blob. It is signaled as dangling but it is not. Hunting for a commit/tree/blob to compare it to in order to understand which modification it was hiding, I found a tree object which referred to it, which by definition of "dangling object" should not exist. So fsck looks f*cked... and I am well available to understand what is going wrong here, but please help me.

$ git fsck --no-reflogs dangling blob e5d444e61b834c34710ce8fb5cb176e20e5894e1 $ git-ls-tree 70b58535361eb633d44d4f1275af3421ca6a5ed7 ... 100644 blob e5d444e61b834c34710ce8fb5cb176e20e5894e1 link_stream.c ...

If you read me until here, good night! ;)

Cheers, Domenico

-----[ Domenico Andreoli, aka cavok
 --[ http://www.dandreoli.com/gpgkey.asc
   ---[ 3A0F 2F80 F79C 678A 8936  4FEE 0677 9033 A20E BC50
Next: Linus Torvalds
Message 1 of 8 in “dangling blob which is not dangling at all”
  1. Domenico AndreoliAug 1, 2007
  2. Linus TorvaldsAug 1, 2007
  3. Domenico AndreoliAug 1, 2007
  4. Junio C HamanoAug 1, 2007
  5. Domenico AndreoliAug 1, 2007
  6. Steven GrimmAug 1, 2007
  7. Rogan DawesAug 1, 2007
  8. Domenico AndreoliAug 1, 2007

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.