Re: [PATCH v4 00/12] Stop depending on `the_repository` in object-related subsystems
On Mon, Mar 10, 2025 at 12:13 AM Patrick Steinhardt <ps@pks.im> wrote:
Show 7 quoted lines
>
> Hi,
>
> this patch series is another step to remove our dependency on the global
> `the_repository` variable. The series focusses on subsystems related to
> objects.
>
> Changes in v4:
> - Fix indentation in one of the commit messages.
> - Link to v3: https://lore.kernel.org/r/20250307-b4-pks-objects-without-the-repository-v3-0-7bccf408731e@pks.im
Thanks, v4 looks good to me.
Show 141 quoted lines
>
> Thanks!
>
> Patrick
>
> ---
> Patrick Steinhardt (12):
> csum-file: stop depending on `the_repository`
> object: stop depending on `the_repository`
> pack-write: stop depending on `the_repository` and `the_hash_algo`
> environment: move access to "core.bigFileThreshold" into repo settings
> pack-check: stop depending on `the_repository`
> pack-revindex: stop depending on `the_repository`
> pack-bitmap-write: stop depending on `the_repository`
> object-file-convert: stop depending on `the_repository`
> delta-islands: stop depending on `the_repository`
> object-file: split out logic regarding hash algorithms
> hash: fix "-Wsign-compare" warnings
> hash: stop depending on `the_repository` in `null_oid()`
>
> Makefile | 1 +
> archive.c | 4 +-
> blame.c | 2 +-
> branch.c | 2 +-
> builtin/checkout.c | 6 +-
> builtin/clone.c | 2 +-
> builtin/describe.c | 2 +-
> builtin/diff.c | 5 +-
> builtin/fast-export.c | 10 +-
> builtin/fast-import.c | 8 +-
> builtin/fsck.c | 6 +-
> builtin/grep.c | 4 +-
> builtin/index-pack.c | 16 +-
> builtin/log.c | 2 +-
> builtin/ls-files.c | 3 +-
> builtin/name-rev.c | 4 +-
> builtin/pack-objects.c | 17 +-
> builtin/prune.c | 2 +-
> builtin/rebase.c | 2 +-
> builtin/receive-pack.c | 2 +-
> builtin/submodule--helper.c | 36 ++--
> builtin/tag.c | 2 +-
> builtin/unpack-objects.c | 5 +-
> builtin/update-ref.c | 2 +-
> builtin/worktree.c | 2 +-
> bulk-checkin.c | 4 +-
> combine-diff.c | 2 +-
> commit-graph.c | 9 +-
> commit.c | 2 +-
> config.c | 5 -
> csum-file.c | 28 +--
> csum-file.h | 12 +-
> delta-islands.c | 14 +-
> delta-islands.h | 2 +-
> diff-lib.c | 10 +-
> diff-no-index.c | 28 +--
> diff.c | 14 +-
> diff.h | 2 +-
> dir.c | 2 +-
> environment.c | 1 -
> environment.h | 1 -
> grep.c | 2 +-
> hash.c | 277 +++++++++++++++++++++++++
> hash.h | 4 +-
> log-tree.c | 2 +-
> merge-ort.c | 26 +--
> merge-recursive.c | 12 +-
> meson.build | 1 +
> midx-write.c | 12 +-
> midx.c | 3 +-
> notes-merge.c | 2 +-
> notes.c | 2 +-
> object-file-convert.c | 29 +--
> object-file-convert.h | 3 +-
> object-file.c | 292 +--------------------------
> object.c | 21 +-
> object.h | 10 +-
> pack-bitmap-write.c | 36 ++--
> pack-bitmap.c | 15 +-
> pack-bitmap.h | 1 +
> pack-check.c | 12 +-
> pack-revindex.c | 35 ++--
> pack-write.c | 55 +++--
> pack.h | 11 +-
> parse-options-cb.c | 2 +-
> range-diff.c | 2 +-
> reachable.c | 6 +-
> read-cache.c | 4 +-
> refs.c | 12 +-
> refs/debug.c | 2 +-
> refs/files-backend.c | 2 +-
> repo-settings.c | 20 ++
> repo-settings.h | 5 +
> reset.c | 2 +-
> revision.c | 3 +-
> sequencer.c | 10 +-
> shallow.c | 10 +-
> streaming.c | 3 +-
> submodule-config.c | 2 +-
> submodule.c | 28 +--
> t/helper/test-ref-store.c | 2 +-
> t/helper/test-submodule-nested-repo-config.c | 2 +-
> t/t1050-large.sh | 3 +-
> tree-diff.c | 4 +-
> upload-pack.c | 14 +-
> wt-status.c | 4 +-
> xdiff-interface.c | 2 +-
> 87 files changed, 677 insertions(+), 613 deletions(-)
>
> Range-diff versus v3:
>
> 1: 01b5b16c3a4 = 1: 9d65ce9a2f2 csum-file: stop depending on `the_repository`
> 2: 14e0349be2f = 2: 038c6e54308 object: stop depending on `the_repository`
> 3: 9c7b8a031cc = 3: 9abd1306d6a pack-write: stop depending on `the_repository` and `the_hash_algo`
> 4: e0168b431e7 = 4: 605fb2a7176 environment: move access to "core.bigFileThreshold" into repo settings
> 5: 529f296a935 = 5: dc88e5ca6b2 pack-check: stop depending on `the_repository`
> 6: d4a2e9a7861 = 6: fee92049913 pack-revindex: stop depending on `the_repository`
> 7: 15e4d4de519 = 7: f8ff74c83cf pack-bitmap-write: stop depending on `the_repository`
> 8: 576d846495f = 8: 47547d3f566 object-file-convert: stop depending on `the_repository`
> 9: faf0f90a005 = 9: 39da917072f delta-islands: stop depending on `the_repository`
> 10: b37879d101c = 10: a509d63ee74 object-file: split out logic regarding hash algorithms
> 11: 4a1a5c67792 = 11: 421f1e96595 hash: fix "-Wsign-compare" warnings
> 12: f45a7866d03 ! 12: 1b0b8f71125 hash: stop depending on `the_repository` in `null_oid()`
> @@ Commit message
> object in the superproject, and consequently we need to use its hash
> algorithm.
>
> - This means that we could in theory just not bother about this edge case
> - at all and just use `the_repository` in "diff-no-index.c". But doing so
> - would feel misdesigned.
> + This means that we could in theory just not bother about this edge
> + case at all and just use `the_repository` in "diff-no-index.c". But
> + doing so would feel misdesigned.
>
> Remove the `USE_THE_REPOSITORY_VARIABLE` preprocessor define in
> "hash.c".
>
> ---
> base-commit: e2cb568e11f4ceb427ba4205e6b8a4426d26be12
> change-id: 20250210-b4-pks-objects-without-the-repository-6ba8398f7cc0
>