git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chuck Lever <cel@citi.umich.edu>
To: Linus Torvalds <torvalds@osdl.org>
Cc: git@vger.kernel.org
Subject: Re: index file screwed up
Date: Wed, 28 Sep 2005 13:43:04 -0400	[thread overview]
Message-ID: <433AD628.1020308@citi.umich.edu> (raw)
In-Reply-To: <Pine.LNX.4.58.0509280831130.3308@g5.osdl.org>

[-- Attachment #1: Type: text/plain, Size: 2720 bytes --]

Linus Torvalds wrote:
> 
> On Wed, 28 Sep 2005, Chuck Lever wrote:
> 
>>i was working with a version of git that had a bug in add_cache_entry() 
>>that introduced a sorting error in my index.
>>
>>[cel@dexter main]$ stg refresh -f
>>Refreshing patch "git-switch-branch"...AUTHORS: unmerged 
>>(098c1d3e9fe5c39b859ccff6c7d36d2c193d1b62)
>>AUTHORS: unmerged (098c1d3e9fe5c39b859ccff6c7d36d2c193d1b62)
>>COPYING: unmerged (d60c31a97a544b53039088d14fe9114583c0efc3)
>>COPYING: unmerged (d60c31a97a544b53039088d14fe9114583c0efc3)
>>INSTALL: unmerged (8d2bebd9d1824f1b7af5cfe6fbd11f9cbfde6d74)
>>INSTALL: unmerged (8d2bebd9d1824f1b7af5cfe6fbd11f9cbfde6d74)
>>MANIFEST.in: unmerged (581d0be2a5fb3569b06681b7d559f1279aa4104b)
>>MANIFEST.in: unmerged (581d0be2a5fb3569b06681b7d559f1279aa4104b)
>>README: unmerged (184ded8e08cb92a14b79c79f9919469ba352ab70)
>>README: unmerged (184ded8e08cb92a14b79c79f9919469ba352ab70)
>>...
>>fatal: git-write-tree: verify_merged: not able to write tree
>>stg refresh: git-write-tree failed
>>
>>[cel@dexter main]$
>>
>>how do i recover?
> 
> 
> You don't. Your index is toast.
> 
> Let's hope you didn't write any unsorted trees with _earlier_ (non-merge) 
> commits.

well, i did get this working, but i "cheated."

first i switched back to a known good version of git.  then, before i 
received your advice, i replaced the damaged index file with a file 
system snapshot backup from a couple of hours earlier.  after a couple 
of "stg refresh" commands, things seem back to normal.

it could be useful to have a few backup versions of the index file (like 
index.1, index.2, etc) and have write-tree rotate them before writing 
out a new index.

btw, the git version was my own, using a trie/list cache.  it mostly 
works, except for this little sorting bug.

> Do this:
> 
>  - build a new and trustworthy git somewhere else (from a tar-file if 
>    nothing else). Install it.
> 
>  - get rid of the index and any half-way data in your working tree (you 
>    might want to save any diffs with "git diff HEAD" first, but I suspect  
>    you don't really care, since the changes came from some stg stuff, so
>    you can always re-create them, no?)
> 
> 	git reset --hard HEAD
> 
>  - run fsck, to verify that all your trees are sorted (if they aren't, you 
>    be screwed, but "git-convert-objects" should be able to fix it for 
>    you - possibly with some additional logic).
> 
> 	git-fsck-objects --full
> 
>  - restart and try again.
> 
> That _should_ get you running again.
> 
> 		Linus
> -
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


[-- Attachment #2: cel.vcf --]
[-- Type: text/x-vcard, Size: 439 bytes --]

begin:vcard
fn:Chuck Lever
n:Lever;Charles
org:Network Appliance, Incorporated;Linux NFS Client Development
adr:535 West William Street, Suite 3100;;Center for Information Technology Integration;Ann Arbor;MI;48103-4943;USA
email;internet:cel@citi.umich.edu
title:Member of Technical Staff
tel;work:+1 734 763 4415
tel;fax:+1 734 763 4434
tel;home:+1 734 668 1089
x-mozilla-html:FALSE
url:http://www.monkey.org/~cel/
version:2.1
end:vcard


      reply	other threads:[~2005-09-28 17:43 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-28 15:06 index file screwed up Chuck Lever
2005-09-28 15:37 ` Linus Torvalds
2005-09-28 17:43   ` Chuck Lever [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=433AD628.1020308@citi.umich.edu \
    --to=cel@citi.umich.edu \
    --cc=git@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).