The aim of this patch series is to remove the definition '#define USE_THE_REPOSITORY_VARIABLE' from "builtin/prune.c" by removing global variables and the global 'the_repository'. This patch series contains two patches: 1 - Move the global variable 'repository_format_precious_objects' into 'struct repository' and update all affected code paths accordingly. 2 - Remove the dependency of 'the_repository' in "builtin/prunce.c", allowing the removal of the definition. Ayush Chandekar (2): repository: move 'repository_format_precious_objects' to repo scope builtin/prune: stop depending on 'the_repository' builtin/gc.c | 2 +- builtin/prune.c | 27 ++++++++++++--------------- builtin/repack.c | 2 +- environment.c | 1 - environment.h | 2 -- repository.c | 1 + repository.h | 1 + setup.c | 5 ++++- 8 files changed, 20 insertions(+), 21 deletions(-) -- Summary of the range-diff: * Changed the commit message of 1/2 to use "setting" instead of "settings" since it refers to just one. * Added "Mentored-by" tags in both 1/2 and 2/2. * Fixed line formatting in builtin/prune.c in 2/2. Range-diff: 1: 699f9a947d ! 1: 995389d622 repository: move 'repository_format_precious_objects' to repo scope @@ Metadata ## Commit message ## repository: move 'repository_format_precious_objects' to repo scope - The 'extensions.preciousObjects' settings when set true, prevents + The 'extensions.preciousObjects' setting when set true, prevents operations that might drop objects from the object storage. This setting is populated in the global variable 'repository_format_precious_objects'. @@ Commit message This change is part of an ongoing effort to eliminate global variables, improve modularity and help libify the codebase. + Mentored-by: Christian Couder <christian.couder@xxxxxxxxx> + Mentored-by: Ghanshyam Thakkar <shyamthakkar001@xxxxxxxxx> Signed-off-by: Ayush Chandekar <ayu.chandekar@xxxxxxxxx> ## builtin/gc.c ## 2: f22cc88e9f ! 2: f70de9d549 builtin/prune: stop depending on 'the_repository' @@ Commit message repo and thus remove the definition '#define USE_THE_REPOSITORY_VARIABLE' + Mentored-by: Christian Couder <christian.couder@xxxxxxxxx> + Mentored-by: Ghanshyam Thakkar <shyamthakkar001@xxxxxxxxx> Signed-off-by: Ayush Chandekar <ayu.chandekar@xxxxxxxxx> ## builtin/prune.c ## @@ builtin/prune.c: static int prune_object(const struct object_id *oid, const char return 0; if (show_only || verbose) { - enum object_type type = oid_object_info(the_repository, oid, -+ enum object_type type = oid_object_info(revs->repo, oid, - NULL); +- NULL); ++ enum object_type type = oid_object_info(revs->repo, oid, NULL); printf("%s %s\n", oid_to_hex(oid), (type > 0) ? type_name(type) : "unknown"); + } @@ builtin/prune.c: static void remove_temporary_files(const char *path) int cmd_prune(int argc, const char **argv, @@ builtin/prune.c: int cmd_prune(int argc, - if (!repo_get_oid(the_repository, name, &oid)) { - struct object *object = parse_object_or_die(the_repository, &oid, +- name); + if (!repo_get_oid(repo, name, &oid)) { -+ struct object *object = parse_object_or_die(repo, &oid, - name); ++ struct object *object = parse_object_or_die(repo, &oid, name); add_pending_object(&revs, object, ""); } + else @@ builtin/prune.c: int cmd_prune(int argc, revs.exclude_promisor_objects = 1; } 2.49.0