Hi, this patch series refactors "object-file.c" to get rid of the dependency on `the_repository`. In many such cases this is done by passing in a `struct odb_source`, which prepares us for eventually converting this into the "loose" object source with pluggable object databases. The patch series is built on top of a30f80fde92 (The eighth batch, 2025-07-08) with "ps/object-store" at 841a03b4046 (odb: rename `read_object_with_reference()`, 2025-07-01) merged into it. Thanks! Patrick --- Patrick Steinhardt (19): object-file: fix -Wsign-compare warnings object-file: stop using `the_hash_algo` object-file: get rid of `the_repository` in `has_loose_object()` object-file: inline `check_and_freshen()` functions object-file: get rid of `the_repository` when freshening objects object-file: get rid of `the_repository` in `loose_object_info()` object-file: get rid of `the_repository` in `finalize_object_file()` loose: write loose objects map via their source odb: introduce `odb_write_object()` object-file: get rid of `the_repository` when writing objects object-file: inline `for_each_loose_file_in_objdir_buf()` object-file: remove declaration for `for_each_file_in_obj_subdir()` object-file: get rid of `the_repository` in loose object iterators object-file: get rid of `the_repository` in `read_loose_object()` object-file: get rid of `the_repository` in `force_object_loose()` object-file: get rid of `the_repository` in index-related functions environment: move compression level into repo settings environment: move object creation mode into repo settings object-file: drop USE_THE_REPOSITORY_VARIABLE apply.c | 11 +- builtin/cat-file.c | 2 +- builtin/checkout.c | 2 +- builtin/count-objects.c | 2 +- builtin/fast-import.c | 12 +- builtin/fsck.c | 16 +-- builtin/gc.c | 10 +- builtin/index-pack.c | 5 +- builtin/merge-file.c | 3 +- builtin/mktag.c | 2 +- builtin/mktree.c | 2 +- builtin/notes.c | 3 +- builtin/pack-objects.c | 55 ++++++--- builtin/prune.c | 2 +- builtin/receive-pack.c | 4 +- builtin/replace.c | 3 +- builtin/tag.c | 4 +- builtin/unpack-objects.c | 15 +-- bulk-checkin.c | 5 +- cache-tree.c | 5 +- commit.c | 4 +- config.c | 50 -------- diff.c | 3 +- environment.c | 7 -- environment.h | 8 -- http-push.c | 3 +- http.c | 4 +- loose.c | 16 +-- loose.h | 4 +- match-trees.c | 2 +- merge-ort.c | 7 +- midx-write.c | 2 +- notes-cache.c | 3 +- notes.c | 12 +- object-file.c | 314 ++++++++++++++++++++++------------------------- object-file.h | 65 +++------- odb.c | 10 ++ odb.h | 38 ++++++ pack-write.c | 16 +-- pack.h | 3 +- prune-packed.c | 2 +- reachable.c | 2 +- read-cache.c | 2 +- repo-settings.c | 54 ++++++++ repo-settings.h | 8 ++ tmp-objdir.c | 2 +- 46 files changed, 426 insertions(+), 378 deletions(-) --- base-commit: f0228c39bf2fe539583cd594671039f05765bc9b change-id: 20250709-pks-object-file-wo-the-repository-9f41234c4747