On 25/05/14 07:12AM, Patrick Steinhardt wrote: > The `raw_object_store` structure is the central entry point for reading > and writing objects in a repository. The main purpose of this structure > is to manage object directories and provide an interface to access and > write objects in those object directories. > > Right now, many of the functions associated with the raw object store > implicitly rely on `the_repository` to get access to its `objects` > pointer, which is the `raw_object_store`. As we want to generally get > rid of using `the_repository` across our codebase we will have to > convert this implicit dependency on this global variable into an > explicit parameter. > > This conversion can be done by simply passing in an explicit pointer to > a repository and then using its `->objects` pointer. But there is a > second effort underway, which is to make the object subsystem more > selfcontained so that we can eventually have pluggable object backends. > As such, passing in a repository wouldn't make a ton of sense, and the > goal is to convert the object store interfaces such that we always pass > in a reference to the `raw_object_store` instead. > > This will expose the `raw_object_store` type to a lot more callers > though, which surfaces that this type is named somewhat awkwardly. The > "raw_" prefix makes readers wonder whether there is a non-raw variant of > the object store, but there isn't. Furthermore, we nowadays want to name > functions in a way that they can be clearly attributed to a specific > subsystem, but calling them e.g. `raw_object_store_has_object()` is just > too unwieldy, even when dropping the "raw_" prefix. > > Instead, rename the structure to `object_database`. This term is already > used a lot throughout our codebase, and it cannot easily be mistaken for > "object directories", either. Furthermore, its acronym ODB is already > well-known and works well as part of a function's name, like for example > `odb_has_object()`. Renaming to `struct object_database` is a good change here. One oddity is that it still contains the `struct object_directory` field named "odb", but that gets cleared up in the next patch. So no issue there. The patch itself just a bunch renames to adapt users of `struct object_database` and some function renames to use the new prefix. This patch looks good to me. -Justin