Re: git gc gives "error: Could not read..."
- From
Jeff King <peff@peff.net>
- Date
- Jun 1, 2015, 08:52 UTC
- Message-ID
- <20150601085226.GA20537@peff.net>
- In-Reply-To
- <556C1A95.9010704@atlas-elektronik.com>
On Mon, Jun 01, 2015 at 10:40:53AM +0200, Stefan Näwe wrote:
Show 6 quoted lines
> Turns out to be a tree: > > tree 7713c3b1e9ea2dd9126244697389e4000bb39d85 > parent d7acfc22fbc0fba467d82f41c90aab7d61f8d751 > author Stefan Naewe <stefan.naewe@atlas-elektronik.com> 1429536806 +0200 > committer Stefan Naewe <stefan.naewe@atlas-elektronik.com> 1429536806 +0200
Yeah, I bungled the grep earlier. That message can come from a missing tag, tree, or commit object. But I think the root cause is the same.
> Not exactly. My msysgit is merge-rebase'd (or rebase-merge'd...) onto v2.2.0... > I'll try older versions (pre v2.2.0) on linux.
OK, that makes more sense then.
> I also cloned from local filesystem (widnows drive) to a samba share.
And that, too.
I've managed to create a small test case that replicates the problem:
diff --git a/t/t6501-freshen-objects.sh b/t/t6501-freshen-objects.sh index 157f3f9..015b0da 100755 --- a/t/t6501-freshen-objects.sh +++ b/t/t6501-freshen-objects.sh @@ -129,4 +129,19 @@ for repack in '' true; do ' done +test_expect_failure 'do not complain about existing broken links' ' + cat >broken-commit <<-\EOF && + tree 0000000000000000000000000000000000000001 + parent 0000000000000000000000000000000000000002 + author whatever <whatever@example.com> 1234 -0000 + committer whatever <whatever@example.com> 1234 -0000 + + some message + EOF + commit=$(git hash-object -t commit -w broken-commit) && + git gc 2>stderr && + verbose git cat-file -e $commit && + test_must_be_empty stderr +' + test_done which produces: 'stderr' is not empty, it contains: error: Could not read 0000000000000000000000000000000000000002 error: Could not read 0000000000000000000000000000000000000001 error: Could not read 0000000000000000000000000000000000000002 error: Could not read 0000000000000000000000000000000000000001 Unfortunately the fix is a little bit invasive. I'll send something out in a few minutes. -Peff