Skip to content

Commit 9b93ab8

Browse files
KarthikNayakgitster
authored andcommitted
refs: move to using the '.optimize' functions
The `struct ref_store` variable exposes two ways to optimize a reftable backend: 1. pack_refs 2. optimize The former was specific to the 'files' + 'packed' refs backend. The latter is more generic and covers all backends. While the naming is different, both of these functions perform the same functionality. Consolidate this code to only maintain the 'optimize' functions. Do this by modifying the backends so that they exclusively implement the `optimize` callback, only. All users of the refs subsystem already use the 'optimize' function so there is no changes needed on the callee side. Finally, cleanup all references to the 'pack_refs' field of the structure and code around it. Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent aec5adb commit 9b93ab8

File tree

7 files changed

+12
-44
lines changed

7 files changed

+12
-44
lines changed

refs.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2313,12 +2313,6 @@ void base_ref_store_init(struct ref_store *refs, struct repository *repo,
23132313
refs->gitdir = xstrdup(path);
23142314
}
23152315

2316-
/* backend functions */
2317-
int refs_pack_refs(struct ref_store *refs, struct pack_refs_opts *opts)
2318-
{
2319-
return refs->be->pack_refs(refs, opts);
2320-
}
2321-
23222316
int refs_optimize(struct ref_store *refs, struct pack_refs_opts *opts)
23232317
{
23242318
return refs->be->optimize(refs, opts);

refs.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -514,12 +514,6 @@ struct pack_refs_opts {
514514
struct string_list *includes;
515515
};
516516

517-
/*
518-
* Write a packed-refs file for the current repository.
519-
* flags: Combination of the above PACK_REFS_* flags.
520-
*/
521-
int refs_pack_refs(struct ref_store *refs, struct pack_refs_opts *opts);
522-
523517
/*
524518
* Optimize the ref store. The exact behavior is up to the backend.
525519
* For the files backend, this is equivalent to packing refs.

refs/debug.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,11 @@ static int debug_transaction_abort(struct ref_store *refs,
116116
return res;
117117
}
118118

119-
static int debug_pack_refs(struct ref_store *ref_store, struct pack_refs_opts *opts)
119+
static int debug_optimize(struct ref_store *ref_store, struct pack_refs_opts *opts)
120120
{
121121
struct debug_ref_store *drefs = (struct debug_ref_store *)ref_store;
122-
int res = drefs->refs->be->pack_refs(drefs->refs, opts);
123-
trace_printf_key(&trace_refs, "pack_refs: %d\n", res);
122+
int res = drefs->refs->be->optimize(drefs->refs, opts);
123+
trace_printf_key(&trace_refs, "optimize: %d\n", res);
124124
return res;
125125
}
126126

@@ -430,7 +430,7 @@ struct ref_storage_be refs_be_debug = {
430430
.transaction_finish = debug_transaction_finish,
431431
.transaction_abort = debug_transaction_abort,
432432

433-
.pack_refs = debug_pack_refs,
433+
.optimize = debug_optimize,
434434
.rename_ref = debug_rename_ref,
435435
.copy_ref = debug_copy_ref,
436436

refs/files-backend.c

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1444,8 +1444,8 @@ static int should_pack_refs(struct files_ref_store *refs,
14441444
return 0;
14451445
}
14461446

1447-
static int files_pack_refs(struct ref_store *ref_store,
1448-
struct pack_refs_opts *opts)
1447+
static int files_optimize(struct ref_store *ref_store,
1448+
struct pack_refs_opts *opts)
14491449
{
14501450
struct files_ref_store *refs =
14511451
files_downcast(ref_store, REF_STORE_WRITE | REF_STORE_ODB,
@@ -1512,15 +1512,6 @@ static int files_pack_refs(struct ref_store *ref_store,
15121512
return 0;
15131513
}
15141514

1515-
static int files_optimize(struct ref_store *ref_store, struct pack_refs_opts *opts)
1516-
{
1517-
/*
1518-
* For the "files" backend, "optimizing" is the same as "packing".
1519-
* So, we just call the existing worker function for packing.
1520-
*/
1521-
return files_pack_refs(ref_store, opts);
1522-
}
1523-
15241515
/*
15251516
* People using contrib's git-new-workdir have .git/logs/refs ->
15261517
* /some/other/path/.git/logs/refs, and that may live on another device.
@@ -3975,7 +3966,6 @@ struct ref_storage_be refs_be_files = {
39753966
.transaction_finish = files_transaction_finish,
39763967
.transaction_abort = files_transaction_abort,
39773968

3978-
.pack_refs = files_pack_refs,
39793969
.optimize = files_optimize,
39803970
.rename_ref = files_rename_ref,
39813971
.copy_ref = files_copy_ref,

refs/packed-backend.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1773,8 +1773,8 @@ static int packed_transaction_finish(struct ref_store *ref_store,
17731773
return ret;
17741774
}
17751775

1776-
static int packed_pack_refs(struct ref_store *ref_store UNUSED,
1777-
struct pack_refs_opts *pack_opts UNUSED)
1776+
static int packed_optimize(struct ref_store *ref_store UNUSED,
1777+
struct pack_refs_opts *pack_opts UNUSED)
17781778
{
17791779
/*
17801780
* Packed refs are already packed. It might be that loose refs
@@ -2129,7 +2129,7 @@ struct ref_storage_be refs_be_packed = {
21292129
.transaction_finish = packed_transaction_finish,
21302130
.transaction_abort = packed_transaction_abort,
21312131

2132-
.pack_refs = packed_pack_refs,
2132+
.optimize = packed_optimize,
21332133
.rename_ref = NULL,
21342134
.copy_ref = NULL,
21352135

refs/refs-internal.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -422,8 +422,6 @@ typedef int ref_transaction_commit_fn(struct ref_store *refs,
422422
struct ref_transaction *transaction,
423423
struct strbuf *err);
424424

425-
typedef int pack_refs_fn(struct ref_store *ref_store,
426-
struct pack_refs_opts *opts);
427425
typedef int optimize_fn(struct ref_store *ref_store,
428426
struct pack_refs_opts *opts);
429427
typedef int rename_ref_fn(struct ref_store *ref_store,
@@ -550,7 +548,6 @@ struct ref_storage_be {
550548
ref_transaction_finish_fn *transaction_finish;
551549
ref_transaction_abort_fn *transaction_abort;
552550

553-
pack_refs_fn *pack_refs;
554551
optimize_fn *optimize;
555552
rename_ref_fn *rename_ref;
556553
copy_ref_fn *copy_ref;

refs/reftable-backend.c

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1700,11 +1700,11 @@ static int reftable_be_transaction_finish(struct ref_store *ref_store UNUSED,
17001700
return ret;
17011701
}
17021702

1703-
static int reftable_be_pack_refs(struct ref_store *ref_store,
1704-
struct pack_refs_opts *opts)
1703+
static int reftable_be_optimize(struct ref_store *ref_store,
1704+
struct pack_refs_opts *opts)
17051705
{
17061706
struct reftable_ref_store *refs =
1707-
reftable_be_downcast(ref_store, REF_STORE_WRITE | REF_STORE_ODB, "pack_refs");
1707+
reftable_be_downcast(ref_store, REF_STORE_WRITE | REF_STORE_ODB, "optimize_refs");
17081708
struct reftable_stack *stack;
17091709
int ret;
17101710

@@ -1733,12 +1733,6 @@ static int reftable_be_pack_refs(struct ref_store *ref_store,
17331733
return ret;
17341734
}
17351735

1736-
static int reftable_be_optimize(struct ref_store *ref_store,
1737-
struct pack_refs_opts *opts)
1738-
{
1739-
return reftable_be_pack_refs(ref_store, opts);
1740-
}
1741-
17421736
struct write_create_symref_arg {
17431737
struct reftable_ref_store *refs;
17441738
struct reftable_stack *stack;
@@ -2761,7 +2755,6 @@ struct ref_storage_be refs_be_reftable = {
27612755
.transaction_finish = reftable_be_transaction_finish,
27622756
.transaction_abort = reftable_be_transaction_abort,
27632757

2764-
.pack_refs = reftable_be_pack_refs,
27652758
.optimize = reftable_be_optimize,
27662759
.rename_ref = reftable_be_rename_ref,
27672760
.copy_ref = reftable_be_copy_ref,

0 commit comments

Comments
 (0)