Patrick Steinhardt <ps@xxxxxx> writes: > 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()`. > > Signed-off-by: Patrick Steinhardt <ps@xxxxxx> > --- > commit-graph.c | 2 +- > commit-graph.h | 4 ++-- > object-store.c | 12 ++++++------ > object-store.h | 11 ++++++++--- > packfile.c | 2 +- > packfile.h | 4 ++-- > repository.c | 4 ++-- > repository.h | 4 ++-- > 8 files changed, 24 insertions(+), 19 deletions(-) > > diff --git a/commit-graph.c b/commit-graph.c > index ad3943b6906..905fcbdf0e8 100644 > --- a/commit-graph.c > +++ b/commit-graph.c > @@ -829,7 +829,7 @@ struct bloom_filter_settings *get_bloom_filter_settings(struct repository *r) > return NULL; > } > > -void close_commit_graph(struct raw_object_store *o) > +void close_commit_graph(struct object_database *o) > { > if (!o->commit_graph) > return; > diff --git a/commit-graph.h b/commit-graph.h > index 13f662827d4..20d38c100ce 100644 > --- a/commit-graph.h > +++ b/commit-graph.h > @@ -26,7 +26,7 @@ void git_test_write_commit_graph_or_die(void); > struct commit; > struct bloom_filter_settings; > struct repository; > -struct raw_object_store; > +struct object_database; > struct string_list; > > char *get_commit_graph_filename(struct object_directory *odb); > @@ -186,7 +186,7 @@ int write_commit_graph(struct object_directory *odb, > > int verify_commit_graph(struct repository *r, struct commit_graph *g, int flags); > > -void close_commit_graph(struct raw_object_store *); > +void close_commit_graph(struct object_database *); > void free_commit_graph(struct commit_graph *); > > /* > diff --git a/object-store.c b/object-store.c > index 58cde0313a5..f4e8f99d90f 100644 > --- a/object-store.c > +++ b/object-store.c > @@ -44,7 +44,7 @@ struct cached_object_entry { > } value; > }; > > -static const struct cached_object *find_cached_object(struct raw_object_store *object_store, > +static const struct cached_object *find_cached_object(struct object_database *object_store, > const struct object_id *oid) > { > static const struct cached_object empty_tree = { > @@ -86,7 +86,7 @@ int odb_mkstemp(struct strbuf *temp_filename, const char *pattern) > /* > * Return non-zero iff the path is usable as an alternate object database. > */ > -static int alt_odb_usable(struct raw_object_store *o, > +static int alt_odb_usable(struct object_database *o, > struct strbuf *path, > const char *normalized_objdir, khiter_t *pos) > { > @@ -950,9 +950,9 @@ void assert_oid_type(const struct object_id *oid, enum object_type expect) > type_name(expect)); > } > > -struct raw_object_store *raw_object_store_new(void) > +struct object_database *odb_new(void) > { > - struct raw_object_store *o = xmalloc(sizeof(*o)); > + struct object_database *o = xmalloc(sizeof(*o)); > > memset(o, 0, sizeof(*o)); > INIT_LIST_HEAD(&o->packed_git_mru); > @@ -961,7 +961,7 @@ struct raw_object_store *raw_object_store_new(void) > return o; > } > > -static void free_object_directories(struct raw_object_store *o) > +static void free_object_directories(struct object_database *o) > { > while (o->odb) { > struct object_directory *next; > @@ -974,7 +974,7 @@ static void free_object_directories(struct raw_object_store *o) > o->odb_by_path = NULL; > } > > -void raw_object_store_clear(struct raw_object_store *o) > +void odb_clear(struct object_database *o) > { > FREE_AND_NULL(o->alternate_db); > > diff --git a/object-store.h b/object-store.h > index c5890085352..a3be27d1171 100644 > --- a/object-store.h > +++ b/object-store.h > @@ -87,7 +87,12 @@ struct packed_git; > struct multi_pack_index; > struct cached_object_entry; > > -struct raw_object_store { > +/* > + * The object database encapsulates access to objects in a repository. It > + * manages one or more backends that store the actual objects which are > + * configured via alternates. This still uses /old/ terminology. I think the "backend" should be called "source", and we can keep the "alternates"? -- Cheers, Toon