Abhishek Kumar <abhishekkumar8222@xxxxxxxxx> writes: > static unsigned int alloc_commit_index(struct repository *r) > { > - return r->parsed_objects->commit_count++; > + static unsigned int parsed_commits_count = 0; > + r->parsed_objects->commit_count++; > + return parsed_commits_count++; > } Hmph, ugly. The need for this hack, which butchers the function that explicitly takes a repository as its parameter so that parsed commits can be counted per repository to not count commits per repository, makes the whole thing smell fishy. There shouldn't be a reason why a commit in the superproject and another commit in the submodule need to be in the same commit graph in the first place. Instead of breaking the function like this, the right "fix" may be to make the commit slab per repository, because the commit index are taken from the separate namespace per repository.