git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 00/12] Stop depending on `the_repository` in object-related subsystems

From
Karthik Nayak <karthik.188@gmail.com>
Date
Mar 6, 2025, 11:20 UTC
Message-ID
<CAOLa=ZR8x_7xPKTVf+9kxsCLFb2BN+GwqLkAOeXZfZyNk9cF+w@mail.gmail.com>
In-Reply-To
<20250303-b4-pks-objects-without-the-repository-v1-0-c5dd43f2476e@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 25 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.
>
> The intent here is to work towards libification of the whole subsystem
> so that we can start splitting out something like an object "backend".
> It is thus part of a set of refactorings aimed at allowing pluggable
> object databases eventually. I'm not discussing that bigger effort yet,
> mostly because it's still taking shape. So these patch series contains
> things that make sense standalone, even if pluggable ODBs never get to
> be a thing.
>
> Note that this patch series stop short of dropping `the_repository` in
> "object-file.c". This is a bigger undertaking, so I'm pushing that into
> the next patch series.
>
> The series is built on top of cb0ae672aea (A bit more post -rc0,
> 2025-02-27) with ps/path-sans-the-repository at 028f618658e (path:
> adjust last remaining users of `the_repository`, 2025-02-07) merged into
> it.
>
> Thanks!
>

Had a look at the series, I only had a small nit or two. Looking great already!

Thanks
Show 110 quoted lines
> 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                           |   2 +-
>  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, 676 insertions(+), 613 deletions(-)
>
>
> ---
> base-commit: e2cb568e11f4ceb427ba4205e6b8a4426d26be12
> change-id: 20250210-b4-pks-objects-without-the-repository-6ba8398f7cc0
Previous: Justin ToblerNext: Patrick Steinhardt
Message 24 of 73 in “Stop depending on `the_repository` in object-related subsystems”
  1. 00/12 Stop depending on `the_repository` in object-related subsystemsPatrick Steinhardt, Mar 3, 2025
  2. 01/12 csum-file: stop depending on `the_repository`Patrick Steinhardt, Mar 3, 2025
  3. Karthik NayakMar 6, 2025
  4. 03/12 pack-write: stop depending on `the_repository` and `the_hash_algo`Patrick Steinhardt, Mar 3, 2025
  5. Justin ToblerMar 4, 2025
  6. 02/12 object: stop depending on `the_repository`Patrick Steinhardt, Mar 3, 2025
  7. Karthik NayakMar 6, 2025
  8. Patrick SteinhardtMar 6, 2025
  9. 05/12 pack-check: stop depending on `the_repository`Patrick Steinhardt, Mar 3, 2025
  10. Karthik NayakMar 6, 2025
  11. 04/12 environment: move access to "core.bigFileThreshold" into repo settingsPatrick Steinhardt, Mar 3, 2025
  12. Justin ToblerMar 4, 2025
  13. Patrick SteinhardtMar 6, 2025
  14. 06/12 pack-revindex: stop depending on `the_repository`Patrick Steinhardt, Mar 3, 2025
  15. 07/12 pack-bitmap-write: stop depending on `the_repository`Patrick Steinhardt, Mar 3, 2025
  16. 08/12 object-file-convert: stop depending on `the_repository`Patrick Steinhardt, Mar 3, 2025
  17. Justin ToblerMar 4, 2025
  18. 09/12 delta-islands: stop depending on `the_repository`Patrick Steinhardt, Mar 3, 2025
  19. Justin ToblerMar 4, 2025
  20. 10/12 object-file: split out logic regarding hash algorithmsPatrick Steinhardt, Mar 3, 2025
  21. 11/12 hash: fix "-Wsign-compare" warningsPatrick Steinhardt, Mar 3, 2025
  22. 12/12 hash: stop depending on `the_repository` in `null_oid()`Patrick Steinhardt, Mar 3, 2025
  23. Justin ToblerMar 4, 2025
  24. Karthik NayakMar 6, 2025
  25. 00/12 Stop depending on `the_repository` in object-related subsystemsPatrick Steinhardt, Mar 6, 2025
  26. 01/12 csum-file: stop depending on `the_repository`Patrick Steinhardt, Mar 6, 2025
  27. 02/12 object: stop depending on `the_repository`Patrick Steinhardt, Mar 6, 2025
  28. 03/12 pack-write: stop depending on `the_repository` and `the_hash_algo`Patrick Steinhardt, Mar 6, 2025
  29. 04/12 environment: move access to "core.bigFileThreshold" into repo settingsPatrick Steinhardt, Mar 6, 2025
  30. 05/12 pack-check: stop depending on `the_repository`Patrick Steinhardt, Mar 6, 2025
  31. 06/12 pack-revindex: stop depending on `the_repository`Patrick Steinhardt, Mar 6, 2025
  32. 07/12 pack-bitmap-write: stop depending on `the_repository`Patrick Steinhardt, Mar 6, 2025
  33. 08/12 object-file-convert: stop depending on `the_repository`Patrick Steinhardt, Mar 6, 2025
  34. 09/12 delta-islands: stop depending on `the_repository`Patrick Steinhardt, Mar 6, 2025
  35. 11/12 hash: fix "-Wsign-compare" warningsPatrick Steinhardt, Mar 6, 2025
  36. 10/12 object-file: split out logic regarding hash algorithmsPatrick Steinhardt, Mar 6, 2025
  37. 12/12 hash: stop depending on `the_repository` in `null_oid()`Patrick Steinhardt, Mar 6, 2025
  38. Junio C HamanoMar 6, 2025
  39. Patrick SteinhardtMar 7, 2025
  40. Junio C HamanoMar 7, 2025
  41. Karthik NayakMar 6, 2025
  42. 00/12 Stop depending on `the_repository` in object-related subsystemsPatrick Steinhardt, Mar 7, 2025
  43. 02/12 object: stop depending on `the_repository`Patrick Steinhardt, Mar 7, 2025
  44. 01/12 csum-file: stop depending on `the_repository`Patrick Steinhardt, Mar 7, 2025
  45. 03/12 pack-write: stop depending on `the_repository` and `the_hash_algo`Patrick Steinhardt, Mar 7, 2025
  46. 05/12 pack-check: stop depending on `the_repository`Patrick Steinhardt, Mar 7, 2025
  47. 04/12 environment: move access to "core.bigFileThreshold" into repo settingsPatrick Steinhardt, Mar 7, 2025
  48. 06/12 pack-revindex: stop depending on `the_repository`Patrick Steinhardt, Mar 7, 2025
  49. 07/12 pack-bitmap-write: stop depending on `the_repository`Patrick Steinhardt, Mar 7, 2025
  50. 08/12 object-file-convert: stop depending on `the_repository`Patrick Steinhardt, Mar 7, 2025
  51. 09/12 delta-islands: stop depending on `the_repository`Patrick Steinhardt, Mar 7, 2025
  52. 10/12 object-file: split out logic regarding hash algorithmsPatrick Steinhardt, Mar 7, 2025
  53. 11/12 hash: fix "-Wsign-compare" warningsPatrick Steinhardt, Mar 7, 2025
  54. 12/12 hash: stop depending on `the_repository` in `null_oid()`Patrick Steinhardt, Mar 7, 2025
  55. Elijah NewrenMar 8, 2025
  56. Patrick SteinhardtMar 10, 2025
  57. Elijah NewrenMar 10, 2025
  58. Junio C HamanoMar 10, 2025
  59. Elijah NewrenMar 8, 2025
  60. 00/12 Stop depending on `the_repository` in object-related subsystemsPatrick Steinhardt, Mar 10, 2025
  61. 01/12 csum-file: stop depending on `the_repository`Patrick Steinhardt, Mar 10, 2025
  62. 02/12 object: stop depending on `the_repository`Patrick Steinhardt, Mar 10, 2025
  63. 03/12 pack-write: stop depending on `the_repository` and `the_hash_algo`Patrick Steinhardt, Mar 10, 2025
  64. 04/12 environment: move access to "core.bigFileThreshold" into repo settingsPatrick Steinhardt, Mar 10, 2025
  65. 05/12 pack-check: stop depending on `the_repository`Patrick Steinhardt, Mar 10, 2025
  66. 06/12 pack-revindex: stop depending on `the_repository`Patrick Steinhardt, Mar 10, 2025
  67. 07/12 pack-bitmap-write: stop depending on `the_repository`Patrick Steinhardt, Mar 10, 2025
  68. 08/12 object-file-convert: stop depending on `the_repository`Patrick Steinhardt, Mar 10, 2025
  69. 09/12 delta-islands: stop depending on `the_repository`Patrick Steinhardt, Mar 10, 2025
  70. 11/12 hash: fix "-Wsign-compare" warningsPatrick Steinhardt, Mar 10, 2025
  71. 10/12 object-file: split out logic regarding hash algorithmsPatrick Steinhardt, Mar 10, 2025
  72. 12/12 hash: stop depending on `the_repository` in `null_oid()`Patrick Steinhardt, Mar 10, 2025
  73. Elijah NewrenMar 10, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.