]> git.ipfire.org Git - thirdparty/git.git/commitdiff
commit-graph.c: display correct number of chunks when writing
authorTaylor Blau <me@ttaylorr.com>
Wed, 24 Feb 2021 17:12:22 +0000 (12:12 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 24 Feb 2021 19:44:34 +0000 (11:44 -0800)
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>
commit-graph.c

index 76514a879e888cc32e94866eb563c018a0c947db..b9efeddeab6c3d0ef1eb2110b2b4ed8addbd5b3d 100644 (file)
@@ -1715,7 +1715,6 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
        struct lock_file lk = LOCK_INIT;
        const unsigned hashsz = the_hash_algo->rawsz;
        struct strbuf progress_title = STRBUF_INIT;
-       int num_chunks = 3;
        struct object_id file_hash;
        struct chunkfile *cf;
 
@@ -1811,11 +1810,11 @@ static int write_commit_graph_file(struct write_commit_graph_context *ctx)
                strbuf_addf(&progress_title,
                            Q_("Writing out commit graph in %d pass",
                               "Writing out commit graph in %d passes",
-                              num_chunks),
-                           num_chunks);
+                              get_num_chunks(cf)),
+                           get_num_chunks(cf));
                ctx->progress = start_delayed_progress(
                        progress_title.buf,
-                       num_chunks * ctx->commits.nr);
+                       get_num_chunks(cf) * ctx->commits.nr);
        }
 
        write_chunkfile(cf, ctx);