Re: What's cooking in git.git (May 2025, #07; Fri, 23)
From: Justin Tobler <hidden>
Date: 2025-05-27 19:50:30
On 25/05/27 09:50AM, Junio C Hamano wrote:
Patrick Steinhardt [off-list ref] writes:quoted
I think the only outstanding discussion is whether to name things `odb_alternate` or `odb_source` [1]. In case others agree that `odb_source` is a better name I'm happy to revise, but if not I'd rather keep it as-is.The model in which the term "alternates" was born is "A repository has its own object directory, the primary one, and in addition it can borrow from zero or more alternate object directories that are used by other repositories". The presence of the primary makes the word "alternate" meaningful. Is the model now "A repository has one object store, which consists of one or more X, all of which are equals"? If there is no primary that is more special than others, then calling X an "alternate" may indeed sound funny, although (1) I do not find it terribly confusing and (2) I do not find "source" much better, either.
My understanding is that the object store still has a primary X and zero or more alternative X. The idea is that eventually, with pluggable ODBs, X can be a different backend/provider instead of just being "files". If this is the case, calling X an "alternate" would mean we have a primary "alternate" and potentially a set of "alternate" alternates. This sounds a bit odd and doesn't quite match what I would intuitively expect. But, I also don't find it super confusing either.
The names we use to call the collection and the underlying implementations of the collection in the reference world unfortunately does not quite help to guide us, as we do not take two implementations and compose into one unified view, which is what we are doing in the object store. Hmmm...
Similar to references, I still think of a pluggable ODB as a "backend".
The main difference being that with references there is only a single
backend active ("file" or "reftables") at a time, while for the object
store there could be multiple.
-Justin
We call pathspec elements given on the command line collectively a pathspec. "Object store elements like loose object directories and packfiles form the object store"? That may be a mouthful. I dunno.