Re: Corrupted git repository?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 15, 2011 at 9:00 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
> Piotr Krukowiecki <piotr.krukowiecki.news@xxxxxxxxx> 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.


> 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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]