From: Patrick Steinhardt Date: Thu, 11 Dec 2025 09:30:13 +0000 (+0100) Subject: odb: stop splitting alternate in `odb_add_to_alternates_file()` X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dccfb39cdb68e47a4c7103b3c465cde91c5f9f56;p=thirdparty%2Fgit.git odb: stop splitting alternate in `odb_add_to_alternates_file()` When calling `odb_add_to_alternates_file()` we know to add the newly added source to the object database in case we have already loaded alternates. This is done so that we can make its objects accessible immediately without having to fully reload all alternates. The way we do this though is to call `link_alt_odb_entries()`, which adds _multiple_ sources to the object database source in case we have newline-separated entries. This behaviour is not documented in the function documentation of `odb_add_to_alternates_file()`, and all callers only ever pass a single directory to it. It's thus entirely surprising and a conceptual mismatch. Fix this issue by directly calling `odb_add_alternate_recursively()` instead. Signed-off-by: Patrick Steinhardt Signed-off-by: Junio C Hamano --- diff --git a/odb.c b/odb.c index e314f86c3b..3112eab5d0 100644 --- a/odb.c +++ b/odb.c @@ -338,7 +338,7 @@ void odb_add_to_alternates_file(struct object_database *odb, if (commit_lock_file(&lock)) die_errno(_("unable to move new alternates file into place")); if (odb->loaded_alternates) - link_alt_odb_entries(odb, dir, '\n', NULL, 0); + odb_add_alternate_recursively(odb, dir, 0); } free(alts); }