On Sunday, November 30, 2014 4:34:42 AM UTC+1, Dale Worley wrote:
>
> (I am using git version 1.8.3.1.) 
>
> Some references for git-fsck are like this: 
>
>     
> https://git.help.collab.net/entries/22580428-Recovering-from-repository-corruption
>  
>
>     $ git fsck --full 
>     broken link from    tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8 
>                   to    blob 4b9458b3786228369c63936db65827de3cc06200 
>     missing blob 4b9458b3786228369c63936db65827de3cc06200 
>
> that is, when git-fsck reports a missing blob, it tells what object 
> contained a link to the blob. 
>
> However, when I run git-fsck, all I get is the missing blob's hash: 
>
>     $ git fsck --full 
>     Checking object directories: 100% (256/256), done. 
>     Checking objects: 100% (4038/4038), done. 
>     missing blob 2322b10fb1cdab6fb38a9ad1c2042285939553b6 
>     missing blob 955c487443b7c11202aca66a0fcb0a1b29ce4645 
>     missing blob fb67076078ca5f64f8eb6a29481f1ab4ff9bca5d 
>     missing blob a7edc7ed7a924b4e2aca62d3462fe1fdfd510d5b 
>
> It seems to me that the first style is much more useful, and indeed it 
> should be augmented so that it can show the complete traceback back to 
> a "root" of the object structure (typically a "refs" value).  Is there 
> any way to activate the first style? 
>
>
Just for the record, I scanned through the git mailing list looking for 
traces of these two modes, but couldn't find anything. You could try 
reading the fsck source...

There are some perl scripts around on StackOverflow that can help you find 
the same information.

My guess is that this is some undocumented feature which is only enabled in 
some particular cases.. 

Here's what happens when I try removing some random object in my Git repo 
(using Git 2.0.0):

git init; git add .;git commit -m "inital"
rm .git/objects/00/79c7f07eb4bfbc08cc21f3324e7997e0b05415
git fsck

Checking object directories: 100% (256/256), done.
broken link from    tree c862bb1ab77b0d118009961c1f06d8954f98db8f
              to    tree 0079c7f07eb4bfbc08cc21f3324e7997e0b05415
missing tree 0079c7f07eb4bfbc08cc21f3324e7997e0b05415 

Here I tried removing a blob instead:

rm .git/objects/ac/9ea1b673c0bb4501415550d492474700d6bd2f
git fsck                                                                   
                          
Checking object directories: 100% (256/256), done.
missing blob ac9ea1b673c0bb4501415550d492474700d6bd2f

So, recreated the issue, in any case. The only difference was that I found 
the blob-to-delete by looking with ls-tree, while the first one was totally 
random.

I'd keep trying around a bit, see if you can find a pattern, and then ask 
on the git-dev list.

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to