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

Re: Corrupted git repository?

From
Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
Date
Feb 16, 2011, 16:44 UTC
Message-ID
<AANLkTimZgpWUAncLgO=y5CvKsYGdYWTHNUzncjrC5UO6@mail.gmail.com>
In-Reply-To
<7vk4h1nk3x.fsf@alter.siamese.dyndns.org>
On Tue, Feb 15, 2011 at 9:00 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 9 quoted lines
> Piotr Krukowiecki <piotr.krukowiecki.news@gmail.com> writes:
>
>> it looks like my git repository got corrupted today.
>>
>> git status shows no changes,
>> git cherry-pick says "error: Your local changes to the following files
>> would be overwritten by merge:",
>
> with some paths, or without naming any path?
With one path:

$ git status # On branch master nothing to commit (working directory clean)

$ git cherry-pick 7d193bb0c1f14908361d9d9d5e30f0c12d5f2c2f
error: Your local changes to the following files would be overwritten by merge:
	<<PATH>>
Please, commit your changes or stash them before you can merge.
Aborting

$ git status # On branch master nothing to commit (working directory clean)

7d193bb comes from trunk, master was reset to a branch, the <<PATH>> is a file that was not changed in the commit, git clean -n -- <<PATH>> does not show anything

They should not have "assume unchanged" bit because I did git update-index --no-assume-unchanged --verbose -- <<PATH>>

>> git fsck starts checking objects but hangs on one "Checking tree"
>
> I take it that you are talking about "git fsck -v".  Is it really "hangs",
> or just "takes a long time"?

I was too hasty - fsck finished fine. It just took long time for one object (a couple of minutes while other checked objects took less than second).

It only printed several dangling objects:

$ git fsck dangling tree 0ff163a56128d95c5b88c520f68792f6f900bb18 dangling commit deb988eeb2404dd1e57c8894c3cfd93dd316aca3 dangling tree 50323779bd6c0d4eb19664a3945c6c31fe9dadd4 dangling commit 9ed87852fdf6775a3c071faec05388eda5cd5de1 dangling commit a4d09c76a1b58bbf51f2b701407493c5ed9f9b78

> You mentioned that a clone is expensive so I
> am guessing that your repository has some huge trees or objects in
> general.
That's one reason, the other is that I'm using git-svn ...
> The details you gave in your message are a bit sketchy to give you an
> exact diagnosis, but if "cherry-pick" stops with the above message and
> tells you the names of files that are not tracked in your current branch,

"git log -- <<PATH>>" shows two commits for this file on this branch and on trunk, and "git status" does not list the file as untracked.

Show 7 quoted lines
> I don't see there is anything unusual going on.  You have these files with
> random contents that git does not know about, and git is refusing to
> lose their contents by overwriting them during the cherry-pick.
>
> After making sure that they are indeed untracked paths, if you think you
> can remove them (or move them away), first do so and retry cherry-pick,
> and then everything should be Ok.
I believe the file is tracked and is not modified?
I have deleted the whole top-level directory in which the file was and run:

$ git status | grep <<PATH>> # deleted: <<PATH>>

$ git checkout -- <<top dir>>

$ git status # On branch master nothing to commit (working directory clean)

$ git cherry-pick 7d193bb0c1f14908361d9d9d5e30f0c12d5f2c2f
error: Your local changes to the following files would be overwritten by merge:
	<<PATH>>
Please, commit your changes or stash them before you can merge.
Aborting
-- 
Piotrek
Previous: Junio C HamanoNext: Johannes Sixt
Message 3 of 5 in “Corrupted git repository?”
  1. Piotr KrukowieckiFeb 15, 2011
  2. Junio C HamanoFeb 15, 2011
  3. Piotr KrukowieckiFeb 16, 2011
  4. Johannes SixtFeb 16, 2011
  5. Piotr KrukowieckiFeb 16, 2011

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.