{"thread":{"id":"1965","subject":"index file screwed up","startedAt":"2005-09-28T15:06:24Z","lastAt":"2005-09-28T17:43:04Z","messageCount":3,"participants":["Chuck Lever","Linus Torvalds"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"9423","messageId":"433AB170.90608@citi.umich.edu","threadId":"1965","inReplyTo":null,"subject":"index file screwed up","fromName":"Chuck Lever","fromEmail":"cel@citi.umich.edu","sentAt":"2005-09-28T15:06:24Z","receivedAt":"2005-09-28T15:06:24Z","isPatch":false,"sender":{"key":"cel@citi.umich.edu","avatar":null},"body":"i was working with a version of git that had a bug in add_cache_entry() \nthat introduced a sorting error in my index.\n\n[cel@dexter main]$ stg refresh -f\nRefreshing patch \"git-switch-branch\"...AUTHORS: unmerged \n(098c1d3e9fe5c39b859ccff6c7d36d2c193d1b62)\nAUTHORS: unmerged (098c1d3e9fe5c39b859ccff6c7d36d2c193d1b62)\nCOPYING: unmerged (d60c31a97a544b53039088d14fe9114583c0efc3)\nCOPYING: unmerged (d60c31a97a544b53039088d14fe9114583c0efc3)\nINSTALL: unmerged (8d2bebd9d1824f1b7af5cfe6fbd11f9cbfde6d74)\nINSTALL: unmerged (8d2bebd9d1824f1b7af5cfe6fbd11f9cbfde6d74)\nMANIFEST.in: unmerged (581d0be2a5fb3569b06681b7d559f1279aa4104b)\nMANIFEST.in: unmerged (581d0be2a5fb3569b06681b7d559f1279aa4104b)\nREADME: unmerged (184ded8e08cb92a14b79c79f9919469ba352ab70)\nREADME: unmerged (184ded8e08cb92a14b79c79f9919469ba352ab70)\n...\nfatal: git-write-tree: verify_merged: not able to write tree\nstg refresh: git-write-tree failed\n\n[cel@dexter main]$\n\n\nhow do i recover?\n\n\nbegin:vcard\nfn:Chuck Lever\nn:Lever;Charles\norg:Network Appliance, Incorporated;Linux NFS Client Development\nadr:535 West William Street, Suite 3100;;Center for Information Technology Integration;Ann Arbor;MI;48103-4943;USA\nemail;internet:cel@citi.umich.edu\ntitle:Member of Technical Staff\ntel;work:+1 734 763 4415\ntel;fax:+1 734 763 4434\ntel;home:+1 734 668 1089\nx-mozilla-html:FALSE\nurl:http://www.monkey.org/~cel/\nversion:2.1\nend:vcard\n\n"},{"id":"9427","messageId":"Pine.LNX.4.58.0509280831130.3308@g5.osdl.org","threadId":"1965","inReplyTo":"433AB170.90608@citi.umich.edu","subject":"Re: index file screwed up","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-09-28T15:37:20Z","receivedAt":"2005-09-28T15:37:20Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Wed, 28 Sep 2005, Chuck Lever wrote:\n>\n> i was working with a version of git that had a bug in add_cache_entry() \n> that introduced a sorting error in my index.\n> \n> [cel@dexter main]$ stg refresh -f\n> Refreshing patch \"git-switch-branch\"...AUTHORS: unmerged \n> (098c1d3e9fe5c39b859ccff6c7d36d2c193d1b62)\n> AUTHORS: unmerged (098c1d3e9fe5c39b859ccff6c7d36d2c193d1b62)\n> COPYING: unmerged (d60c31a97a544b53039088d14fe9114583c0efc3)\n> COPYING: unmerged (d60c31a97a544b53039088d14fe9114583c0efc3)\n> INSTALL: unmerged (8d2bebd9d1824f1b7af5cfe6fbd11f9cbfde6d74)\n> INSTALL: unmerged (8d2bebd9d1824f1b7af5cfe6fbd11f9cbfde6d74)\n> MANIFEST.in: unmerged (581d0be2a5fb3569b06681b7d559f1279aa4104b)\n> MANIFEST.in: unmerged (581d0be2a5fb3569b06681b7d559f1279aa4104b)\n> README: unmerged (184ded8e08cb92a14b79c79f9919469ba352ab70)\n> README: unmerged (184ded8e08cb92a14b79c79f9919469ba352ab70)\n> ...\n> fatal: git-write-tree: verify_merged: not able to write tree\n> stg refresh: git-write-tree failed\n> \n> [cel@dexter main]$\n> \n> how do i recover?\n\nYou don't. Your index is toast.\n\nLet's hope you didn't write any unsorted trees with _earlier_ (non-merge) \ncommits.\n\nDo this:\n\n - build a new and trustworthy git somewhere else (from a tar-file if \n   nothing else). Install it.\n\n - get rid of the index and any half-way data in your working tree (you \n   might want to save any diffs with \"git diff HEAD\" first, but I suspect  \n   you don't really care, since the changes came from some stg stuff, so\n   you can always re-create them, no?)\n\n\tgit reset --hard HEAD\n\n - run fsck, to verify that all your trees are sorted (if they aren't, you \n   be screwed, but \"git-convert-objects\" should be able to fix it for \n   you - possibly with some additional logic).\n\n\tgit-fsck-objects --full\n\n - restart and try again.\n\nThat _should_ get you running again.\n\n\t\tLinus\n"},{"id":"9436","messageId":"433AD628.1020308@citi.umich.edu","threadId":"1965","inReplyTo":"Pine.LNX.4.58.0509280831130.3308@g5.osdl.org","subject":"Re: index file screwed up","fromName":"Chuck Lever","fromEmail":"cel@citi.umich.edu","sentAt":"2005-09-28T17:43:04Z","receivedAt":"2005-09-28T17:43:04Z","isPatch":false,"sender":{"key":"cel@citi.umich.edu","avatar":null},"body":"Linus Torvalds wrote:\n> \n> On Wed, 28 Sep 2005, Chuck Lever wrote:\n> \n>>i was working with a version of git that had a bug in add_cache_entry() \n>>that introduced a sorting error in my index.\n>>\n>>[cel@dexter main]$ stg refresh -f\n>>Refreshing patch \"git-switch-branch\"...AUTHORS: unmerged \n>>(098c1d3e9fe5c39b859ccff6c7d36d2c193d1b62)\n>>AUTHORS: unmerged (098c1d3e9fe5c39b859ccff6c7d36d2c193d1b62)\n>>COPYING: unmerged (d60c31a97a544b53039088d14fe9114583c0efc3)\n>>COPYING: unmerged (d60c31a97a544b53039088d14fe9114583c0efc3)\n>>INSTALL: unmerged (8d2bebd9d1824f1b7af5cfe6fbd11f9cbfde6d74)\n>>INSTALL: unmerged (8d2bebd9d1824f1b7af5cfe6fbd11f9cbfde6d74)\n>>MANIFEST.in: unmerged (581d0be2a5fb3569b06681b7d559f1279aa4104b)\n>>MANIFEST.in: unmerged (581d0be2a5fb3569b06681b7d559f1279aa4104b)\n>>README: unmerged (184ded8e08cb92a14b79c79f9919469ba352ab70)\n>>README: unmerged (184ded8e08cb92a14b79c79f9919469ba352ab70)\n>>...\n>>fatal: git-write-tree: verify_merged: not able to write tree\n>>stg refresh: git-write-tree failed\n>>\n>>[cel@dexter main]$\n>>\n>>how do i recover?\n> \n> \n> You don't. Your index is toast.\n> \n> Let's hope you didn't write any unsorted trees with _earlier_ (non-merge) \n> commits.\n\nwell, i did get this working, but i \"cheated.\"\n\nfirst i switched back to a known good version of git.  then, before i \nreceived your advice, i replaced the damaged index file with a file \nsystem snapshot backup from a couple of hours earlier.  after a couple \nof \"stg refresh\" commands, things seem back to normal.\n\nit could be useful to have a few backup versions of the index file (like \nindex.1, index.2, etc) and have write-tree rotate them before writing \nout a new index.\n\nbtw, the git version was my own, using a trie/list cache.  it mostly \nworks, except for this little sorting bug.\n\n> Do this:\n> \n>  - build a new and trustworthy git somewhere else (from a tar-file if \n>    nothing else). Install it.\n> \n>  - get rid of the index and any half-way data in your working tree (you \n>    might want to save any diffs with \"git diff HEAD\" first, but I suspect  \n>    you don't really care, since the changes came from some stg stuff, so\n>    you can always re-create them, no?)\n> \n> \tgit reset --hard HEAD\n> \n>  - run fsck, to verify that all your trees are sorted (if they aren't, you \n>    be screwed, but \"git-convert-objects\" should be able to fix it for \n>    you - possibly with some additional logic).\n> \n> \tgit-fsck-objects --full\n> \n>  - restart and try again.\n> \n> That _should_ get you running again.\n> \n> \t\tLinus\n> -\n> To unsubscribe from this list: send the line \"unsubscribe git\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n\n\n\nbegin:vcard\nfn:Chuck Lever\nn:Lever;Charles\norg:Network Appliance, Incorporated;Linux NFS Client Development\nadr:535 West William Street, Suite 3100;;Center for Information Technology Integration;Ann Arbor;MI;48103-4943;USA\nemail;internet:cel@citi.umich.edu\ntitle:Member of Technical Staff\ntel;work:+1 734 763 4415\ntel;fax:+1 734 763 4434\ntel;home:+1 734 668 1089\nx-mozilla-html:FALSE\nurl:http://www.monkey.org/~cel/\nversion:2.1\nend:vcard\n\n"}]}