aboutsummaryrefslogtreecommitdiffstats
path: root/refs/refs-internal.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-06-17 15:55:55 -0700
committerJunio C Hamano <gitster@pobox.com>2024-06-17 15:55:55 -0700
commit40a163f217da87b735f2f6b1916a81c4d21689c8 (patch)
tree04a2547b7c4f089595ec95868c2ee3df10681064 /refs/refs-internal.h
parentdfd668fa844f6ba18e6588a5988438baaa2d3e06 (diff)
parent25a0023f28600102f54e7529c20da5928c3e9c75 (diff)
downloadgit-40a163f217da87b735f2f6b1916a81c4d21689c8.tar.gz
Merge branch 'ps/ref-storage-migration'
A new command has been added to migrate a repository that uses the files backend for its ref storage to use the reftable backend, with limitations. * ps/ref-storage-migration: builtin/refs: new command to migrate ref storage formats refs: implement logic to migrate between ref storage formats refs: implement removal of ref storages worktree: don't store main worktree twice reftable: inline `merged_table_release()` refs/files: fix NULL pointer deref when releasing ref store refs/files: extract function to iterate through root refs refs/files: refactor `add_pseudoref_and_head_entries()` refs: allow to skip creation of reflog entries refs: pass storage format to `ref_store_init()` explicitly refs: convert ref storage format to an enum setup: unset ref storage when reinitializing repository version
Diffstat (limited to 'refs/refs-internal.h')
-rw-r--r--refs/refs-internal.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/refs/refs-internal.h b/refs/refs-internal.h
index 33749fbd83..cbcb6f9c36 100644
--- a/refs/refs-internal.h
+++ b/refs/refs-internal.h
@@ -517,6 +517,12 @@ typedef int ref_store_create_on_disk_fn(struct ref_store *refs,
int flags,
struct strbuf *err);
+/*
+ * Remove the reference store from disk.
+ */
+typedef int ref_store_remove_on_disk_fn(struct ref_store *refs,
+ struct strbuf *err);
+
typedef int ref_transaction_prepare_fn(struct ref_store *refs,
struct ref_transaction *transaction,
struct strbuf *err);
@@ -649,6 +655,7 @@ struct ref_storage_be {
ref_store_init_fn *init;
ref_store_release_fn *release;
ref_store_create_on_disk_fn *create_on_disk;
+ ref_store_remove_on_disk_fn *remove_on_disk;
ref_transaction_prepare_fn *transaction_prepare;
ref_transaction_finish_fn *transaction_finish;