]> git.ipfire.org Git - thirdparty/git.git/commitdiff
commit-graph: fix "Writing out commit graph" progress counter
authorSZEDER Gábor <szeder.dev@gmail.com>
Thu, 9 Jul 2020 17:00:03 +0000 (19:00 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 9 Jul 2020 17:28:49 +0000 (10:28 -0700)
76ffbca71a (commit-graph: write Bloom filters to commit graph file,
2020-04-06) added two delayed progress lines to writing the Bloom
filter index and data chunk.  This is wrong, because a single common
progress is used while writing all chunks, which is not updated while
writing these two new chunks, resulting in incomplete-looking "done"
lines:

  Expanding reachable commits in commit graph: 888679, done.
  Computing commit changed paths Bloom filters: 100% (888678/888678), done.
  Writing out commit graph in 6 passes:  66% (3554712/5332068), done.

Use the common 'struct progress' instance while writing the Bloom
filter chunks as well.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit-graph.c

index aaf3327ede88f9e0955bec5bcb7586329ed653f2..65cf32637cb875616035ad1fb6bcbae67a36e300 100644 (file)
@@ -1086,23 +1086,14 @@ static void write_graph_chunk_bloom_indexes(struct hashfile *f,
        struct commit **list = ctx->commits.list;
        struct commit **last = ctx->commits.list + ctx->commits.nr;
        uint32_t cur_pos = 0;
-       struct progress *progress = NULL;
-       int i = 0;
-
-       if (ctx->report_progress)
-               progress = start_delayed_progress(
-                       _("Writing changed paths Bloom filters index"),
-                       ctx->commits.nr);
 
        while (list < last) {
                struct bloom_filter *filter = get_bloom_filter(ctx->r, *list, 0);
                cur_pos += filter->len;
-               display_progress(progress, ++i);
+               display_progress(ctx->progress, ++ctx->progress_cnt);
                hashwrite_be32(f, cur_pos);
                list++;
        }
-
-       stop_progress(&progress);
 }
 
 static void write_graph_chunk_bloom_data(struct hashfile *f,
@@ -1111,13 +1102,6 @@ static void write_graph_chunk_bloom_data(struct hashfile *f,
 {
        struct commit **list = ctx->commits.list;
        struct commit **last = ctx->commits.list + ctx->commits.nr;
-       struct progress *progress = NULL;
-       int i = 0;
-
-       if (ctx->report_progress)
-               progress = start_delayed_progress(
-                       _("Writing changed paths Bloom filters data"),
-                       ctx->commits.nr);
 
        hashwrite_be32(f, settings->hash_version);
        hashwrite_be32(f, settings->num_hashes);
@@ -1125,12 +1109,10 @@ static void write_graph_chunk_bloom_data(struct hashfile *f,
 
        while (list < last) {
                struct bloom_filter *filter = get_bloom_filter(ctx->r, *list, 0);
-               display_progress(progress, ++i);
+               display_progress(ctx->progress, ++ctx->progress_cnt);
                hashwrite(f, filter->data, filter->len * sizeof(unsigned char));
                list++;
        }
-
-       stop_progress(&progress);
 }
 
 static int oid_compare(const void *_a, const void *_b)