@matheusbsbs / matheus-bagliano / commits / 6f9d5f2fda
Fork 0

commit-graph: fix progress of reachable commits

To display a progress line while iterating over all refs, d335ce8f24 (commit-graph.c: show progress of finding reachable commits, 2020-05-13) should have added a pair of start_delayed_progress() and stop_progress() calls around a for_each_ref() invocation. Alas, the stop_progress() call ended up at the wrong place, after write_commit_graph(), which does all the commit-graph computation and writing, and has several progress lines of its own. Consequently, that new Collecting referenced commits: 123 progress line is overwritten by the first progress line shown by write_commit_graph(), and its final "done" line is shown last, after everything is finished: Expanding reachable commits in commit graph: 344786, done. Computing commit changed paths Bloom filters: 100% (344786/344786), done. Collecting referenced commits: 154, done. Move that stop_progress() call to the right place. While at it, drop the unnecessary 'if (data.progress)' condition protecting the stop_progress() call, because that function is prepared to handle a NULL progress struct. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

SZEDER Gábor committed Jul 9, 2020 at 18:54 UTC 6f9d5f2fda1f94cf1539d3e0529c2b2e7ee7eebb
1 file changed +3 -2
commit-graph.c
+3 -2
@@ -1354,12 +1354,13 @@ int write_commit_graph_reachable(struct object_directory *odb,
1354 _("Collecting referenced commits"), 0);
1355
1356 for_each_ref(add_ref_to_set, &data);
1357 +
1358 + stop_progress(&data.progress);
1359 +
1360 result = write_commit_graph(odb, NULL, &commits,
1361 flags, split_opts);
1362
1363 oidset_clear(&commits);
1361 - if (data.progress)
1362 - stop_progress(&data.progress);
1364 return result;
1365 }
1366