Re: Performance regression in connectivity check during receive-pack (git 2.54)
From: Jeff King <hidden>
Date: 2026-07-26 08:51:18
On Fri, Jul 24, 2026 at 05:46:58AM +0200, Patrick Steinhardt wrote:
One other angle that Justin and I have been discussing (we were at an offsite together over the last couple days) was that we can do a small course correction: instead of handling alternates on the ODB level, we may be able to start treating alternates as an implementation detail of it. So both the handling of alternates, but also the handling of the GIT_OBJECT_DIRECTORY and GIT_ALTERNATE_OBJECT_DIRECTORIES environment variables would be moved into the "files" backend itself.
That seems reasonable to me. In theory it could lose some flexibility if some code really wanted to represent alternates as abstract sources, but I can't think of why you'd want to do so. Traditionally we did not even really have separate sources at all, and the point of adding them was not so much to have arbitrary combinations of sources as to abstract the details. I guess somebody could want to use a local alternates object-dir along with their sql database of objects or whatever. But even then, it seems like the alternate could be added as its own files-backend odb source.
This would solve a bunch of smaller issues that we're currently grappling with where some of the concepts in Git really want to operate across all of the alternates: [...]
Yeah, that all sounds like a positive direction. Thanks! -Peff