Subject: [PATCH 0/6] Improvements for ref storage formats with submodules

From: Patrick Steinhardt <[email-masked]>
Date: Wed, 7 Aug 2024 14:43:44 +0200

Hi,

this small patch series contains some improvements for ref storage
formats and their interaction with submodules. Notably:

  - Use the correct format for submodules in situations where the parent
    repository uses a different ref storage format than the submodule.

  - Wire up `--ref-format=` for git-submodule(1), such that users can
    explicitly use a different ref format for their submodules.

  - Propagate the `--ref-format=` flag of git-clone(1) into submodules
    when using `--recursive`.

The first three patches implement improvements for the above three
issues and introduce tests. The test did hit some memory leaks, which
get fixed by patches 3 to 6 such that the new test can be marked as leak
free.

Thanks!

Patrick

Patrick Steinhardt (6):
  builtin/submodule: allow cloning with different ref storage format
  builtin/clone: propagate ref storage format to submodules
  refs: fix ref storage format for submodule ref stores
  submodule: fix leaking fetch tasks
  submodule: fix leaking seen submodule names
  object: fix leaking packfiles when closing object store

 Documentation/git-submodule.txt        |   5 +-
 builtin/clone.c                        |  10 ++-
 builtin/submodule--helper.c            |  30 +++++++
 git-submodule.sh                       |   9 ++
 object.c                               |   9 ++
 refs.c                                 |   2 +-
 submodule.c                            |  18 ++--
 t/t5572-pull-submodule.sh              |   1 +
 t/t7418-submodule-sparse-gitmodules.sh |   1 +
 t/t7424-submodule-mixed-ref-formats.sh | 120 +++++++++++++++++++++++++
 10 files changed, 191 insertions(+), 14 deletions(-)
 create mode 100755 t/t7424-submodule-mixed-ref-formats.sh

-- 
2.46.0.dirty