diff options
| author | Meet Soni <meetsoni3017@gmail.com> | 2025-09-19 13:56:39 +0530 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-09-19 10:02:55 -0700 |
| commit | 8dfe077fb68eb952464ce59deaa4dfdd52891457 (patch) | |
| tree | 9d14c9fcf9ef8548f0ba0a682405d5918b3230ba /refs.c | |
| parent | f814da676ae46aac5be0a98b99373a76dee6cedb (diff) | |
| download | git-8dfe077fb68eb952464ce59deaa4dfdd52891457.tar.xz | |
refs: add a generic 'optimize' API
The existing `pack-refs` API is conceptually tied to the 'files'
backend, but its behavior is generic (e.g., it triggers compaction for
reftable). This naming is confusing.
Introduce a new generic refs_optimize() API that dispatches to a
backend-specific implementation via a new 'optimize' vtable method.
This lays the architectural groundwork for different reference backends
(like 'files' and 'reftable') to provide their own storage optimization
logic, which will be called from a single, generic entry point.
Mentored-by: Patrick Steinhardt <ps@pks.im>
Mentored-by: shejialuo <shejialuo@gmail.com>
Signed-off-by: Meet Soni <meetsoni3017@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs.c')
| -rw-r--r-- | refs.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -2282,6 +2282,11 @@ int refs_pack_refs(struct ref_store *refs, struct pack_refs_opts *opts) return refs->be->pack_refs(refs, opts); } +int refs_optimize(struct ref_store *refs, struct pack_refs_opts *opts) +{ + return refs->be->optimize(refs, opts); +} + int peel_iterated_oid(struct repository *r, const struct object_id *base, struct object_id *peeled) { if (current_ref_iter && |
