Re: [PATCH 05/17] odb: get rid of `the_repository` in `find_odb()`

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/6/25 7:09 AM, Patrick Steinhardt wrote:

diff --git a/builtin/commit-graph.c b/builtin/commit-graph.c
index 0a184d39720..28550d3bcc9 100644
--- a/builtin/commit-graph.c
+++ b/builtin/commit-graph.c
@@ -66,7 +66,7 @@ static int graph_verify(int argc, const char **argv, const char *prefix,
  			struct repository *repo UNUSED)
  {
  	struct commit_graph *graph = NULL;
-	struct odb_backend *odb = NULL;
+	struct odb_backend *backend = NULL;

nit: this looks like a misplaced variable rename that should be in
an earlier patch.

@@ -101,9 +101,9 @@ static int graph_verify(int argc, const char **argv, const char *prefix,
  	if (opts.progress)
  		flags |= COMMIT_GRAPH_WRITE_PROGRESS;
- odb = find_odb(the_repository, opts.obj_dir);
-	graph_name = get_commit_graph_filename(odb);
-	chain_name = get_commit_graph_chain_filename(odb);
+	backend = odb_find_backend(the_repository->objects, opts.obj_dir);
+	graph_name = get_commit_graph_filename(backend);
+	chain_name = get_commit_graph_chain_filename(backend);

I like how your use of specific backends here cleaans up a lot of
garbage around the --object-dir parameter of the commit-graph
builtin.

This is a real structural improvement that is made possible by
this refactoring.

@@ -221,7 +221,7 @@ static int graph_write(int argc, const char **argv, const char *prefix,
  	struct string_list pack_indexes = STRING_LIST_INIT_DUP;
  	struct strbuf buf = STRBUF_INIT;
  	struct oidset commits = OIDSET_INIT;
-	struct odb_backend *odb = NULL;
+	struct odb_backend *backend = NULL;

Here's another of those delayed renames.

-struct odb_backend *find_odb(struct repository *r, const char *obj_dir)
+struct odb_backend *odb_find_backend(struct object_database *odb, const char *obj_dir)

I was looking at this implementation and wondering why it wasn't
renamed earlier, but upon closer inspection I agree that the
rename is worthwhile _and_ the method shouldn't have been
changed until now.

  {
-	struct odb_backend *odb;
+	struct odb_backend *backend;
  	char *obj_dir_real = real_pathdup(obj_dir, 1);
  	struct strbuf odb_path_real = STRBUF_INIT;
- prepare_alt_odb(r);
-	for (odb = r->objects->backends; odb; odb = odb->next) {
-		strbuf_realpath(&odb_path_real, odb->path, 1);
+	prepare_alt_odb(odb->repo);
This does make me wonder if we should be able to prepare the
alternates for a given odb without using an owning repo. Yes,
we'd need to assign the repo parent when creating new odbs, but
the info/alternates file is in the object dir.

Perhaps this is waiting for me in a later patch...

Thanks,
-Stolee





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux