Subject: [PATCH] refs: add missing remove_on_disk implementation for debug backend

From: "RuanXinyu via GitGitGadget" <[email-masked]>
Date: Fri, 24 Oct 2025 08:38:14 +0000

From: RuanXinyu <[email-masked]>

The debug ref backend (refs_be_debug) was missing the remove_on_disk
function pointer, which caused a segmentation fault when running
'GIT_TRACE_REFS=1 git refs migrate --ref-format=reftable' commands.

Signed-off-by: Xinyu Ruan <[email-masked]>
---
    refs: add missing remove_on_disk implementation for debug backend

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-2082%2FRuanXinyu%2Ffix-refs-trace-migrate-error-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-2082/RuanXinyu/fix-refs-trace-migrate-error-v1
Pull-Request: https://github.com/git/git/pull/2082

 refs/debug.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/refs/debug.c b/refs/debug.c
index da300efaf3..dd49080836 100644
--- a/refs/debug.c
+++ b/refs/debug.c
@@ -48,6 +48,14 @@ static int debug_create_on_disk(struct ref_store *refs, int flags, struct strbuf
 	return res;
 }
 
+static int debug_remove_on_disk(struct ref_store *refs, struct strbuf *err)
+{
+	struct debug_ref_store *drefs = (struct debug_ref_store *)refs;
+	int res = drefs->refs->be->remove_on_disk(drefs->refs, err);
+	trace_printf_key(&trace_refs, "remove_on_disk: %d\n", res);
+	return res;
+}
+
 static int debug_transaction_prepare(struct ref_store *refs,
 				     struct ref_transaction *transaction,
 				     struct strbuf *err)
@@ -432,6 +440,7 @@ struct ref_storage_be refs_be_debug = {
 	.init = NULL,
 	.release = debug_release,
 	.create_on_disk = debug_create_on_disk,
+	.remove_on_disk = debug_remove_on_disk,
 
 	/*
 	 * None of these should be NULL. If the "files" backend (in

base-commit: 81f86aacc4eb74cdb9c2c8082d36d2070c666045
-- 
gitgitgadget