]> git.ipfire.org Git - thirdparty/git.git/commit
commit-graph: refactor `parse_commit_graph()` to take a repository
authorPatrick Steinhardt <ps@pks.im>
Fri, 15 Aug 2025 05:49:49 +0000 (07:49 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 15 Aug 2025 16:34:47 +0000 (09:34 -0700)
commitf1141b43911441f3c5d0fda49d05a6433da372a3
tree664e2f5c5bb8aca901d7b3a9a310b7ac3a924a79
parente45402bb199e869c223f575bf2f44db679d00279
commit-graph: refactor `parse_commit_graph()` to take a repository

Refactor `parse_commit_graph()` so that it takes a repository instead of
taking repository settings. On the one hand this allows us to get rid of
instances where we access `the_hash_algo` by using the repository's hash
algorithm instead. On the other hand it also allows us to move the call
of `prepare_repo_settings()` into the function itself.

Note that there's one small catch, as the commit-graph fuzzer calls this
function directly without having a fully functional repository at hand.
And while the fuzzer already initializes `the_repository` with relevant
info, the call to `prepare_repo_settings()` would fail because we don't
have a fully-initialized repository.

Work around the issue by also settings `settings.initialized` to pretend
that we've already read the settings.

While at it, remove the redundant `parse_commit_graph()` declaration in
the fuzzer. It was added together with aa658574bf (commit-graph, fuzz:
add fuzzer for commit-graph, 2019-01-15), but as we also declared the
same function in "commit-graph.h" it wasn't ever needed.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit-graph.c
commit-graph.h
oss-fuzz/fuzz-commit-graph.c