(I'm using git 2.15.0.)
So today "git gc" started complaining:
error: Could not read 2bc277bcb7e9cc6ef2ea677dd1c3dcd1f9af0c2b
fatal: Failed to traverse parents of commit
9c355a7726e31b3033b8e714cf7edb4f0a41d8d4
error: failed to run repack
I suspect I'm a victim of the worktree+submodule bugs -- as a longtime
user of contrib/workdir/git-new-workdir, I've been playing with the
"worktree" command since it was first introduced. The "git gc" error
occurs when it's run in my main repo; I have not tried it in any of my
worktrees/workdirs.
Various incantations of "git show ... 9c355a7726e31" only fail with the
same error, so I can't determine much about the problematic commit.
Luckily I'm not particularly concerned with losing objects, as I push
any important progress to named refs in backup repos.
But I would like to clean this up in my local repo so that gc stops
failing. I tried simply removing this and other loose commits that trip
up gc (i.e. the objects/9c/355a7726e31b3033b8e714cf7edb4f0a41d8d4 file
-- there are 49 such files, all of which are several months old), but
now gc complains of a bad tree object:
error: Could not read c1a99c3520f0b456b8025c50302a4cc9b0b2d777
fatal: bad tree object c1a99c3520f0b456b8025c50302a4cc9b0b2d777
error: failed to run repack
This object is not lying around loose. "git fsck" lists several
dangling blob/commit/tree objects, but none of them are c1a99c3520f0b4.
So I'm not sure what to do next.
Any suggestions?
Thanks,
M.