Re: [PATCH 2/3] midx: don't provide a total for QSORT() progress
From: Junio C Hamano <hidden>
Date: 2021-07-23 21:56:17
Ævar Arnfjörð Bjarmason [off-list ref] writes:
The quicksort algorithm can be anywhere between O(n) and O(n^2), so providing a "num objects" as a total means that in some cases we're going to go past 100%. This fixes a logic error in 5ae18df9d8e (midx: during verify group objects by packfile to speed verification, 2019-03-21), which in turn seems to have been diligently copied from my own logic error in the commit-graph.c code, see 890226ccb57 (commit-graph write: add itermediate progress, 2019-01-19).
Interesting.
quoted hunk
That commit-graph code of mine was removed in 1cbdbf3bef7 (commit-graph: drop count_distinct_commits() function, 2020-12-07), so we don't need to fix that too. Signed-off-by: Ævar Arnfjörð Bjarmason <redacted> --- midx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/midx.c b/midx.c index 9a35b0255d..eaae75ab19 100644 --- a/midx.c +++ b/midx.c@@ -1291,7 +1291,7 @@ int verify_midx_file(struct repository *r, const char *object_dir, unsigned flag if (flags & MIDX_PROGRESS) progress = start_sparse_progress(_("Sorting objects by packfile"), - m->num_objects); + 0); display_progress(progress, 0); /* TODO: Measure QSORT() progress */ QSORT(pairs, m->num_objects, compare_pair_pos_vs_id); stop_progress(&progress);