Files
git/builtin
Kristofer Karlsson 0acbaf9000 merge: use repo_in_merge_bases for octopus up-to-date check
The octopus merge path checks whether each remote head is already
an ancestor of HEAD by computing all merge-bases via
repo_get_merge_bases() and comparing the first result's OID to
the remote head.  This is more expensive than necessary:
repo_get_merge_bases() calls paint_down_to_common() with
min_generation=0, performs the full STALE drain, and may run
remove_redundant(), when all we need is a yes/no reachability
answer.

Replace this with repo_in_merge_bases(), which answers the
is-ancestor question directly.  When generation numbers are
available, repo_in_merge_bases() uses can_all_from_reach() -- a
DFS bounded by generation number that stops as soon as the target
is found or ruled out, without entering paint_down_to_common() at
all.  Without generation numbers, it still benefits from a tighter
min_generation floor.

Signed-off-by: Kristofer Karlsson <krka@spotify.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-05-13 00:43:39 +09:00
..
2026-03-24 12:31:32 -07:00
2026-04-10 07:58:53 -07:00
2026-02-20 08:13:58 -08:00
2026-03-31 20:43:14 -07:00
2026-04-10 07:58:53 -07:00
2026-04-10 07:58:53 -07:00
2026-03-24 12:31:32 -07:00
2026-03-31 20:43:14 -07:00
2026-04-08 10:19:17 -07:00
2026-03-12 14:09:07 -07:00
2026-03-23 09:20:30 -07:00
2026-04-08 10:19:17 -07:00
2026-03-23 08:33:10 -07:00
2026-03-23 08:33:10 -07:00
2026-03-31 20:43:14 -07:00
2026-02-20 08:13:58 -08:00
2026-03-31 20:43:14 -07:00
2026-03-24 12:31:31 -07:00
2026-04-08 10:19:17 -07:00
2026-04-10 07:58:53 -07:00