Subject: Re: tree corrupted on disk quota full

From: Andreas Ericsson <[email-masked]>
Date: Thu, 11 Jan 2007 15:28:23 +0100

Michael S. Tsirkin wrote:
>>> I hit a quota limit on a disk my tree was on, but did not notice.
>>> Doing git pull on a tree seems to have corrupted it.
>>> Now I have:
>>>
>>> $ git-fsck-objects
>>> error: 4d4d30be967d3284cbf59afd4fba6ab536e295f5: object not found
>>> error: c03590b581d51d5fa43adbef9415e935d0229412: object not found
>>> missing tree 10147d79b2418168d9433067b6439971bd4f1261
>>> broken link from  commit 322a6c93ad86d2a151dd97a4c6b0e014a4893437
>>>               to    tree 10147d79b2418168d9433067b6439971bd4f1261
>>> dangling commit 322a6c93ad86d2a151dd97a4c6b0e014a4893437
>>>
>>> The tree can not be pulled into, or from.
>>>
>> Can you do a "git rev-list" on the commit pointing to this tree?
> 
> On which commit?
> 

322a6c93ad86d2a151dd97a4c6b0e014a4893437

>> If so, you should be able to do "git reset HEAD~1" and re-do the fetch.
> 
> $ git reset --hard HEAD~1
> HEAD is now at 2d41bf8... Remove svn keywords
> $ git-fsck-objects
> error: 4d4d30be967d3284cbf59afd4fba6ab536e295f5: object not found
> error: c03590b581d51d5fa43adbef9415e935d0229412: object not found
> missing tree 10147d79b2418168d9433067b6439971bd4f1261
> broken link from  commit 322a6c93ad86d2a151dd97a4c6b0e014a4893437
>               to    tree 10147d79b2418168d9433067b6439971bd4f1261
> dangling commit 322a6c93ad86d2a151dd97a4c6b0e014a4893437
> 

Humm... Seems there are other problems here.

Try

$ git reset --hard 322a6c93ad86d2a151dd97a4c6b0e014a4893437~1
$ git fsck-objects HEAD

If this tells you your repo is clean, you should be able to redo 
whatever fetches you did on top of that to get a working repository 
again. If you have objects that got half-written due to end-of-disk 
errors, you'd have to do "git prune" after resetting.

-- 
Andreas Ericsson                   [email-masked]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231