aboutsummaryrefslogtreecommitdiffstats
path: root/refs.c
diff options
context:
space:
mode:
authorKarthik Nayak <karthik.188@gmail.com>2025-11-06 09:22:32 +0100
committerJunio C Hamano <gitster@pobox.com>2025-11-06 10:00:07 -0800
commit5a3355f3d94f1ea70751f32d5a55232b4d97eb41 (patch)
tree5827c1dbeae1bc0d85c897d9ec40e298e99ab48b /refs.c
parentreftable/stack: add function to check if optimization is required (diff)
downloadgit-5a3355f3d94f1ea70751f32d5a55232b4d97eb41.tar.gz
git-5a3355f3d94f1ea70751f32d5a55232b4d97eb41.zip
refs: add a `optimize_required` field to `struct ref_storage_be`
To allow users of the refs namespace to check if the reference backend requires optimization, add a new field `optimize_required` field to `struct ref_storage_be`. This field is of type `optimize_required_fn` which is also introduced in this commit. Modify the debug, files, packed and reftable backend to implement this field. A following commit will expose this via 'git pack-refs' and 'git refs optimize'. Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs.c')
-rw-r--r--refs.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/refs.c b/refs.c
index 0d0831f29b..5583f6e09d 100644
--- a/refs.c
+++ b/refs.c
@@ -2318,6 +2318,13 @@ int refs_optimize(struct ref_store *refs, struct refs_optimize_opts *opts)
return refs->be->optimize(refs, opts);
}
+int refs_optimize_required(struct ref_store *refs,
+ struct refs_optimize_opts *opts,
+ bool *required)
+{
+ return refs->be->optimize_required(refs, opts, required);
+}
+
int reference_get_peeled_oid(struct repository *repo,
const struct reference *ref,
struct object_id *peeled_oid)