On 2/7/2021 3:12 PM, Junio C Hamano wrote: > SZEDER Gábor <szeder.dev@xxxxxxxxx> writes: >> 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. The reflog _might_ have something of value there, but the hope is that very few commits are actually being force-pushed away. The focus is to prioritize the deep history, and it would definitely be an anti-pattern if the commits in the reflog are so numerous that they must be tracked by the commit-graph. Of course, skipping the --reachable option enables a way to gather these commits as necessary. The index won't have commit oids that matter (yes, for submodules they will exist, but those are not commits for the super repo). Thanks, -Stolee