From d24eda4e03cabbd39ce06827d47e52a97b9095db Mon Sep 17 00:00:00 2001 From: Derrick Stolee Date: Tue, 6 Jun 2023 13:24:35 +0000 Subject: repository: create disable_replace_refs() Several builtins depend on being able to disable the replace references so we actually operate on each object individually. These currently do so by directly mutating the 'read_replace_refs' global. A future change will move this global into a different place, so it will be necessary to change all of these lines. However, we can simplify that transition by abstracting the purpose of these global assignments with a method call. We will need to keep this read_replace_refs global forever, as we want to make sure that we never use replace refs throughout the life of the process if this method is called. Future changes may present a repository-scoped version of the variable to represent that repository's core.useReplaceRefs config value, but a zero-valued read_replace_refs will always override such a setting. Signed-off-by: Derrick Stolee Signed-off-by: Junio C Hamano --- replace-object.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'replace-object.c') diff --git a/replace-object.c b/replace-object.c index e98825d585..ceec81c940 100644 --- a/replace-object.c +++ b/replace-object.c @@ -84,3 +84,8 @@ const struct object_id *do_lookup_replace_object(struct repository *r, } die(_("replace depth too high for object %s"), oid_to_hex(oid)); } + +void disable_replace_refs(void) +{ + read_replace_refs = 0; +} -- cgit v1.2.3