SZEDER Gábor <szeder.dev@xxxxxxxxx> writes: > On Tue, Feb 02, 2021 at 06:06:51PM -0800, Junio C Hamano wrote: >> Derrick Stolee <stolee@xxxxxxxxx> writes: >> >> >> - what is the recommended way to recover from this state? "git fsck" >> >> shows the repositories to have no problems. "git help commit-graph" >> >> doesn't show a command for users to use; is >> >> `rm -fr .git/objects/info/commit-graphs/` the recommended recovery >> >> command? >> >> "rm -f .git/objects/info/commit-graph" as well, no? >> >> > That, followed by `git commit-graph write --reachable [--changed-paths]` >> > depending on what they want. >> >> Just out of curiosity, how important is "--reachable"? It only >> traverses from the tips of refs and unlike fsck and repack, not from >> reflog entries (or the index for that matter, but that shouldn't >> make much difference as there is no _commit_ in the index). > > Scanning all objects in all packfiles is a very inefficient way to > find the commits to be recorded in the commit-graph, and depending on > the repository's shape and size can have several times higher runtime > and memory footprint. But wouldn't it make the resulting graph file not very useful for the purpose of say deciding what object to pack when running "gc" or "repack" or "prune"? The fact that it ignores the index and the reflog entries as roots of traversal with "--reachable" bothers me.