On Fri, Jul 18, 2025 at 11:09:04AM +0200, René Scharfe wrote: > Use prio_queue to improve worst-case performance at the cost of slightly > worse best-case performance. Then add and use prio_queue_replace() to > recover that loss. > > Changes since v2: > - Mention that a prio_queue improves performance for merge-heavy > histories in the commit message. > - Add the new perf script to Meson build file. > - Mention which kind of history we are aiming for and show its shape in > a comment in the perf script. > - Remove unnecessary quotes and use single quotes for the perf test > code. > - Rename the variable delete_pending to get_pending to align it with > the concrete function prio_queue_get() instead of referring to the > abstract concept of deletion, to improve readability. > > commit: convert pop_most_recent_commit() to prio_queue > prio-queue: add prio_queue_replace() > commit: use prio_queue_replace() in pop_most_recent_commit() The patches in this series were picked up in the wrong order: $ git log --topo-order --reverse --oneline -3 e436bc94f3 36554bf51a commit: convert pop_most_recent_commit() to prio_queue 304f06e0c0 commit: use prio_queue_replace() in pop_most_recent_commit(),MIME-Version: 1.0 e436bc94f3 prio-queue: add prio_queue_replace() Note that the order of the second and third patches is reversed. Since the second patch/third commit introduces a new function used by the third patch/second commit, this leads to build failure of 304f06e0c0: CC commit.o commit.c: In function ‘pop_most_recent_commit’: commit.c:754:33: error: implicit declaration of function ‘prio_queue_replace’; did you mean ‘prio_queue_reverse’? [-Werror=implicit-function-declaration] 754 | prio_queue_replace(queue, commit); | ^~~~~~~~~~~~~~~~~~ | prio_queue_reverse cc1: all warnings being treated as errors make: *** [Makefile:2821: commit.o] Error 1 (And there's that MIME-Version thing at the end of 304f06e0c0's subject line as well.)