Merge branch 'kn/refs-optim-cleanup' into kn/maintenance-is-needed

* kn/refs-optim-cleanup:
  t/pack-refs-tests: move the 'test_done' to callees
  refs: rename 'pack_refs_opts' to 'refs_optimize_opts'
  refs: move to using the '.optimize' functions
This commit is contained in:
Junio C Hamano
2025-11-04 07:38:48 -08:00
11 changed files with 42 additions and 72 deletions

View File

@@ -116,11 +116,11 @@ static int debug_transaction_abort(struct ref_store *refs,
return res;
}
static int debug_pack_refs(struct ref_store *ref_store, struct pack_refs_opts *opts)
static int debug_optimize(struct ref_store *ref_store, struct refs_optimize_opts *opts)
{
struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;
int res = drefs->refs->be->pack_refs(drefs->refs, opts);
trace_printf_key(&trace_refs, "pack_refs: %d\n", res);
int res = drefs->refs->be->optimize(drefs->refs, opts);
trace_printf_key(&trace_refs, "optimize: %d\n", res);
return res;
}
@@ -430,7 +430,7 @@ struct ref_storage_be refs_be_debug = {
.transaction_finish = debug_transaction_finish,
.transaction_abort = debug_transaction_abort,
.pack_refs = debug_pack_refs,
.optimize = debug_optimize,
.rename_ref = debug_rename_ref,
.copy_ref = debug_copy_ref,

View File

@@ -1355,7 +1355,7 @@ static void prune_refs(struct files_ref_store *refs, struct ref_to_prune **refs_
*/
static int should_pack_ref(struct files_ref_store *refs,
const struct reference *ref,
struct pack_refs_opts *opts)
struct refs_optimize_opts *opts)
{
struct string_list_item *item;
@@ -1383,7 +1383,7 @@ static int should_pack_ref(struct files_ref_store *refs,
}
static int should_pack_refs(struct files_ref_store *refs,
struct pack_refs_opts *opts)
struct refs_optimize_opts *opts)
{
struct ref_iterator *iter;
size_t packed_size;
@@ -1391,7 +1391,7 @@ static int should_pack_refs(struct files_ref_store *refs,
size_t limit;
int ret;
if (!(opts->flags & PACK_REFS_AUTO))
if (!(opts->flags & REFS_OPTIMIZE_AUTO))
return 1;
ret = packed_refs_size(refs->packed_ref_store, &packed_size);
@@ -1444,8 +1444,8 @@ static int should_pack_refs(struct files_ref_store *refs,
return 0;
}
static int files_pack_refs(struct ref_store *ref_store,
struct pack_refs_opts *opts)
static int files_optimize(struct ref_store *ref_store,
struct refs_optimize_opts *opts)
{
struct files_ref_store *refs =
files_downcast(ref_store, REF_STORE_WRITE | REF_STORE_ODB,
@@ -1488,7 +1488,7 @@ static int files_pack_refs(struct ref_store *ref_store,
iter->ref.name, err.buf);
/* Schedule the loose reference for pruning if requested. */
if ((opts->flags & PACK_REFS_PRUNE)) {
if ((opts->flags & REFS_OPTIMIZE_PRUNE)) {
struct ref_to_prune *n;
FLEX_ALLOC_STR(n, name, iter->ref.name);
oidcpy(&n->oid, iter->ref.oid);
@@ -1512,15 +1512,6 @@ static int files_pack_refs(struct ref_store *ref_store,
return 0;
}
static int files_optimize(struct ref_store *ref_store, struct pack_refs_opts *opts)
{
/*
* For the "files" backend, "optimizing" is the same as "packing".
* So, we just call the existing worker function for packing.
*/
return files_pack_refs(ref_store, opts);
}
/*
* People using contrib's git-new-workdir have .git/logs/refs ->
* /some/other/path/.git/logs/refs, and that may live on another device.
@@ -3990,7 +3981,6 @@ struct ref_storage_be refs_be_files = {
.transaction_finish = files_transaction_finish,
.transaction_abort = files_transaction_abort,
.pack_refs = files_pack_refs,
.optimize = files_optimize,
.rename_ref = files_rename_ref,
.copy_ref = files_copy_ref,

View File

@@ -1773,8 +1773,8 @@ cleanup:
return ret;
}
static int packed_pack_refs(struct ref_store *ref_store UNUSED,
struct pack_refs_opts *pack_opts UNUSED)
static int packed_optimize(struct ref_store *ref_store UNUSED,
struct refs_optimize_opts *opts UNUSED)
{
/*
* Packed refs are already packed. It might be that loose refs
@@ -2129,7 +2129,7 @@ struct ref_storage_be refs_be_packed = {
.transaction_finish = packed_transaction_finish,
.transaction_abort = packed_transaction_abort,
.pack_refs = packed_pack_refs,
.optimize = packed_optimize,
.rename_ref = NULL,
.copy_ref = NULL,

View File

@@ -422,10 +422,8 @@ typedef int ref_transaction_commit_fn(struct ref_store *refs,
struct ref_transaction *transaction,
struct strbuf *err);
typedef int pack_refs_fn(struct ref_store *ref_store,
struct pack_refs_opts *opts);
typedef int optimize_fn(struct ref_store *ref_store,
struct pack_refs_opts *opts);
struct refs_optimize_opts *opts);
typedef int rename_ref_fn(struct ref_store *ref_store,
const char *oldref, const char *newref,
const char *logmsg);
@@ -550,7 +548,6 @@ struct ref_storage_be {
ref_transaction_finish_fn *transaction_finish;
ref_transaction_abort_fn *transaction_abort;
pack_refs_fn *pack_refs;
optimize_fn *optimize;
rename_ref_fn *rename_ref;
copy_ref_fn *copy_ref;

View File

@@ -1700,11 +1700,11 @@ done:
return ret;
}
static int reftable_be_pack_refs(struct ref_store *ref_store,
struct pack_refs_opts *opts)
static int reftable_be_optimize(struct ref_store *ref_store,
struct refs_optimize_opts *opts)
{
struct reftable_ref_store *refs =
reftable_be_downcast(ref_store, REF_STORE_WRITE | REF_STORE_ODB, "pack_refs");
reftable_be_downcast(ref_store, REF_STORE_WRITE | REF_STORE_ODB, "optimize_refs");
struct reftable_stack *stack;
int ret;
@@ -1715,7 +1715,7 @@ static int reftable_be_pack_refs(struct ref_store *ref_store,
if (!stack)
stack = refs->main_backend.stack;
if (opts->flags & PACK_REFS_AUTO)
if (opts->flags & REFS_OPTIMIZE_AUTO)
ret = reftable_stack_auto_compact(stack);
else
ret = reftable_stack_compact_all(stack, NULL);
@@ -1733,12 +1733,6 @@ out:
return ret;
}
static int reftable_be_optimize(struct ref_store *ref_store,
struct pack_refs_opts *opts)
{
return reftable_be_pack_refs(ref_store, opts);
}
struct write_create_symref_arg {
struct reftable_ref_store *refs;
struct reftable_stack *stack;
@@ -2761,7 +2755,6 @@ struct ref_storage_be refs_be_reftable = {
.transaction_finish = reftable_be_transaction_finish,
.transaction_abort = reftable_be_transaction_abort,
.pack_refs = reftable_be_pack_refs,
.optimize = reftable_be_optimize,
.rename_ref = reftable_be_rename_ref,
.copy_ref = reftable_be_copy_ref,