On 6/29/2020 6:07 PM, Jonathan Tan wrote: > At $DAYJOB, a few people have reported "warning: unable to find all > commit-graph files" warnings. Their commit-graph-chain files have a few > lines, but they only have one commit graph file with very few commits. I > suspected something happening during fetch, because (as far as I know) a > fetch may cause an incremental commit graph to be written, but I ran a > fetch on a large repository myself and didn't run into this problem. > > Has anyone ran into this problem before, and know how to reproduce? The incremental commit-graph code deletes any commit-graph files that do not appear in the chain. I believe this is done by comparing the contents of the ".git/objects/info/commit-graphs/" directory to the contents of the chain file. These appear to be case-sensitive, full-path comparisons. It is _possible_ that something like a case switch or a symlink could be causing a problem here. That's where I would look on the affected systems. Likely the full-path comparison in expire_commit_graphs() should be dropped in favor of local filename comparisons. A case- sensitive match is less likely to be important here since Git is writing the paths itself and should get the proper case back from the directory listing. Thanks, -Stolee