From: Junio C Hamano Date: Sun, 7 Jun 2026 14:58:25 +0000 (+0900) Subject: Merge branch 'kk/commit-reach-optim' X-Git-Tag: v2.55.0-rc0~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6390da42c728af2a1b2bfd32a8195c0f1c6f89cd;p=thirdparty%2Fgit.git Merge branch 'kk/commit-reach-optim' The check for non-stale commits in the priority queue used by `paint_down_to_common` and `ahead_behind` has been optimized by replacing an O(N) scan with an O(1) counter, yielding performance improvements in repositories with wide histories. * kk/commit-reach-optim: commit-reach: replace queue_has_nonstale() scan with O(1) tracking commit-reach: deduplicate queue entries in paint_down_to_common object.h: fix stale entries in object flag allocation table --- 6390da42c728af2a1b2bfd32a8195c0f1c6f89cd diff --cc commit-reach.c index 9b3ea46d6f,2e86e1e803..5df471a313 --- a/commit-reach.c +++ b/commit-reach.c @@@ -54,10 -101,12 +101,12 @@@ static int paint_down_to_common(struct struct commit *one, int n, struct commit **twos, timestamp_t min_generation, - int ignore_missing_commits, + enum merge_base_flags mb_flags, struct commit_list **result) { - struct prio_queue queue = { compare_commits_by_gen_then_commit_date }; + struct nonstale_queue queue = { + { compare_commits_by_gen_then_commit_date } + }; int i; timestamp_t last_gen = GENERATION_NUMBER_INFINITY; struct commit_list **tail = result;