commit-graph: move remaining write parameters into options

Move the remaining optional parameters that can be passed to
`write_commit_graph()` into its options structure to simplify the
function's calling convention.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt authored and Junio C Hamano committed 2026-11-04 11:21:15 -08:00
1 parent ffcd9b2fd8
commit c61c348b66
5 files changed
+17 -25

No files matched your search

+3 -4
View File
@@ -319,6 +319,7 @@ static int cmd_commit_graph_write(int argc,
string_list_append(&pack_indexes, packname.buf);
}
write_opts.pack_indexes = &pack_indexes;
strbuf_release(&packname);
} else if (opts.stdin_commits) {
oidset_init(&commits, 0);
@@ -335,13 +336,11 @@ static int cmd_commit_graph_write(int argc,
}
}
write_opts.commits = &commits;
stop_progress(&progress);
}
if (write_commit_graph(repo, dir->abspath,
opts.stdin_packs ? &pack_indexes : NULL,
opts.stdin_commits ? &commits : NULL,
&write_opts))
if (write_commit_graph(repo, dir->abspath, &write_opts))
result = 1;
cleanup:
+5 -10
View File
@@ -2943,20 +2943,15 @@ int cmd_fetch(int argc,
write_opts.flags |= COMMIT_GRAPH_WRITE_PROGRESS;
if (graph_write_mode != GRAPH_WRITE_TIPS)
write_opts.flags |= COMMIT_GRAPH_WRITE_REACHABLE;
else
write_opts.commits = &updated_tips;
if (graph_write_mode != GRAPH_WRITE_SKIP) {
trace2_region_enter("fetch", "write-commit-graph",
the_repository);
if (graph_write_mode == GRAPH_WRITE_TIPS)
write_commit_graph(
the_repository,
the_repository->objects->source->path,
NULL, &updated_tips, &write_opts);
else
write_commit_graph(
the_repository,
the_repository->objects->source->path,
NULL, NULL, &write_opts);
write_commit_graph(the_repository,
the_repository->objects->source->path,
&write_opts);
trace2_region_leave("fetch", "write-commit-graph",
the_repository);
}
+1 -1
View File
@@ -742,7 +742,7 @@ int cmd_gc(int argc,
write_opts.flags |= COMMIT_GRAPH_WRITE_PROGRESS;
write_commit_graph(the_repository, the_repository->objects->source->path,
NULL, NULL, &write_opts);
&write_opts);
}
if (!daemonized) {
+6 -8
View File
@@ -41,7 +41,7 @@ void git_test_write_commit_graph_or_die(struct repository *repo)
if (git_env_bool(GIT_TEST_COMMIT_GRAPH_CHANGED_PATHS, 0))
opts.flags |= COMMIT_GRAPH_WRITE_BLOOM_FILTERS;
if (write_commit_graph(repo, repo->objects->source->path, NULL, NULL, &opts))
if (write_commit_graph(repo, repo->objects->source->path, &opts))
die("failed to write commit-graph under GIT_TEST_COMMIT_GRAPH");
}
@@ -2544,8 +2544,6 @@ out:
int write_commit_graph(struct repository *r,
const char *dir,
const struct string_list *const pack_indexes,
struct oidset *commits,
const struct commit_graph_write_options *opts)
{
struct write_commit_graph_context ctx = {
@@ -2563,7 +2561,7 @@ int write_commit_graph(struct repository *r,
struct topo_level_slab topo_levels;
struct commit_graph *g;
if (!!pack_indexes + !!commits + !!(opts->flags & COMMIT_GRAPH_WRITE_REACHABLE) > 1)
if (!!opts->pack_indexes + !!opts->commits + !!(opts->flags & COMMIT_GRAPH_WRITE_REACHABLE) > 1)
BUG("attempting to write commit-graph with mutually incompatible options");
prepare_repo_settings(r);
@@ -2644,12 +2642,12 @@ int write_commit_graph(struct repository *r,
}
}
if (pack_indexes) {
if (opts->pack_indexes) {
ctx.order_by_pack = 1;
if ((res = fill_oids_from_packs(&ctx, pack_indexes)))
if ((res = fill_oids_from_packs(&ctx, opts->pack_indexes)))
goto cleanup;
} else if (commits) {
if ((res = fill_oids_from_commits(&ctx, commits)))
} else if (opts->commits) {
if ((res = fill_oids_from_commits(&ctx, opts->commits)))
goto cleanup;
} else if (opts->flags & COMMIT_GRAPH_WRITE_REACHABLE) {
fill_oids_from_reachable(&ctx, &reachable_commits);
+2 -2
View File
@@ -171,6 +171,8 @@ enum commit_graph_split_flags {
struct commit_graph_write_options {
enum commit_graph_write_flags flags;
const struct string_list *pack_indexes;
struct oidset *commits;
int size_multiple;
int max_commits;
timestamp_t expire_time;
@@ -195,8 +197,6 @@ struct commit_graph_write_options {
*/
int write_commit_graph(struct repository *r,
const char *dir,
const struct string_list *pack_indexes,
struct oidset *commits,
const struct commit_graph_write_options *opts);
#define COMMIT_GRAPH_VERIFY_SHALLOW (1 << 0)