Re: rogue tree objects, how to diagnose?
- From
Jeff King <peff@peff.net>
- Date
- Mar 1, 2009, 03:20 UTC
- Message-ID
- <20090301032035.GB30384@coredump.intra.peff.net>
- In-Reply-To
- <20090228.191206.75012167.davem@davemloft.net>
On Sat, Feb 28, 2009 at 07:12:06PM -0800, David Miller wrote:
Show 9 quoted lines
> From git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 > * branch master -> FETCH_HEAD > fatal: unable to read tree c9ee57c5c20c3b7a2d7784a4172aef8b34c3a844 > davem@sunset:~/src/GIT/net-next-2.6$ git show c9ee57c5c20c3b7a2d7784a4172aef8b34c3a844 > fatal: bad object c9ee57c5c20c3b7a2d7784a4172aef8b34c3a844 > davem@sunset:~/src/GIT/net-next-2.6$ > > Now, what's funny is that this tree object does exist in my > tree on master.kernel.org:
"bad object" is about an object that did not parse correctly, as opposed to one that is missing. So it's possible that your repository is corrupted.
> I don't understand how this can happen, and I'd like to be able > to diagnose this intelligently.
I'm not up on the latest techniques for verifying and fixing corruption. But I think with recent enough git, you can grab a good copy of the object from another repo and put it in
.git/objects/c9/ee57c5c20c3b7a2d7784a4172aef8b34c3a844
that git would do the right thing.
> So, what is an easy way to figure out what commit references tree > object X?
Try:
git log --all --pretty=format:'%H %T' | grep c9ee57c5c | cut -d' ' -f1
keeping in mind that there may be multiple such commits.
-Peff