commit-graph.c: display correct number of chunks when writing

When writing a commit-graph, a progress meter is shown which indicates the number of pieces of data to write (one per commit in each chunk). In 47410aa837 (commit-graph: use chunk-format write API, 2021-02-18), the number of chunks became tracked by the new chunk-format API. But a stray local variable was left behind from when write_commit_graph_file() used to keep track of the same. Since this was no longer updated after 47410aa837, the progress meter appeared broken: $ git commit-graph write --reachable Expanding reachable commits in commit graph: 837569, done. Writing out commit graph in 3 passes: 166% (4187845/2512707), done. Drop the local variable and rely instead on the chunk-format API to tell us the correct number of chunks. Reported-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Taylor Blau <me@ttaylorr.com> Acked-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Taylor Blau committed Feb 24, 2021 at 12:12 UTC c4ff24bbb354377a6a7937744fbbef2898243fc7
1 file changed +3 -4
commit-graph.c
+3 -4
@@ -1715,7 +1715,6 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
1715 struct lock_file lk = LOCK_INIT;
1716 const unsigned hashsz = the_hash_algo->rawsz;
1717 struct strbuf progress_title = STRBUF_INIT;
1718 - int num_chunks = 3;
1718 struct object_id file_hash;
1719 struct chunkfile *cf;
1720
@@ -1811,11 +1810,11 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
1810 strbuf_addf(&progress_title,
1811 Q_("Writing out commit graph in %d pass",
1812 "Writing out commit graph in %d passes",
1814 - num_chunks),
1815 - num_chunks);
1813 + get_num_chunks(cf)),
1814 + get_num_chunks(cf));
1815 ctx->progress = start_delayed_progress(
1816 progress_title.buf,
1818 - num_chunks * ctx->commits.nr);
1817 + get_num_chunks(cf) * ctx->commits.nr);
1818 }
1819
1820 write_chunkfile(cf, ctx);