Git development
 help / color / mirror / Atom feed
* [PATCH 0/2] repack: write filtered-out objects as loose objects
@ 2026-11-13 22:11 Adithya Chakilam via GitGitGadget
  2026-11-13 22:11 ` [PATCH 1/2] repack: add --filter-to-loose to " Adithya Chakilam via GitGitGadget
  2026-11-13 22:11 ` [PATCH 2/2] repack: also copy loose objects excluded by --filter-to-loose Adithya Chakilam via GitGitGadget
  0 siblings, 2 replies; 3+ messages in thread
From: Adithya Chakilam via GitGitGadget @ 2026-11-13 22:11 UTC (permalink / raw)
  To: git; +Cc: Martin Fick, Christian Couder, Adithya Chakilam

Some key-value object stores manage and retrieve Git objects individually.
The existing --filter-to option writes filtered-out objects into packs, so
using it with such stores requires unpacking the resulting packs before
importing the objects.

This series adds --filter-to-loose=dir to git repack, allowing filtered-out
objects to be written directly as loose objects into another object
directory.

With --filter-to-loose, repack streams the filtered pack into
unpack-objects, avoiding that extra step and the intermediate pack file. For
example:

git repack -a --filter=blob=1m --filter-to-loose=/path/to/objects

The destination is treated as a Git object directory.

The first patch adds the option for objects already stored in packs. The
second extends it to include loose objects excluded by the filter, so the
destination also receives those objects. Objects already present in the
destination are not rewritten. With -d, the source copies of those loose
objects are removed after all objects have been written successfully.

Adithya Chakilam (2):
  repack: add --filter-to-loose to write filtered-out objects as loose
    objects
  repack: also copy loose objects excluded by --filter-to-loose

 Documentation/git-repack.adoc |  14 ++-
 builtin/repack.c              |  32 +++++-
 repack-filtered.c             | 152 ++++++++++++++++++++++++++-
 repack.h                      |  14 +++
 t/t7700-repack.sh             | 189 ++++++++++++++++++++++++++++++++++
 5 files changed, 394 insertions(+), 7 deletions(-)


base-commit: 1891de46f79dc444a47db1c87bd0c8c76b5463f2
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2314%2Fachakilam-nv%2Ffilter-to-loose-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2314/achakilam-nv/filter-to-loose-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/2314
-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-11-13 22:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-13 22:11 [PATCH 0/2] repack: write filtered-out objects as loose objects Adithya Chakilam via GitGitGadget
2026-11-13 22:11 ` [PATCH 1/2] repack: add --filter-to-loose to " Adithya Chakilam via GitGitGadget
2026-11-13 22:11 ` [PATCH 2/2] repack: also copy loose objects excluded by --filter-to-loose Adithya Chakilam via GitGitGadget

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox