On Wed, Oct 30, 2024 at 05:27:33AM +0000, Caleb White wrote: > >> diff --git a/builtin/worktree.c b/builtin/worktree.c > >> index dae63dedf4cac2621f51f95a39aa456b33acd894..c1130be5890c905c0b648782a834eb8dfcd79ba5 100644 > >> --- a/builtin/worktree.c > >> +++ b/builtin/worktree.c > >> @@ -134,6 +134,9 @@ static int git_worktree_config(const char *var, const char *value, > >> if (!strcmp(var, "worktree.guessremote")) { > >> guess_remote = git_config_bool(var, value); > >> return 0; > >> + } else if (!strcmp(var, "worktree.userelativepaths")) { > >> + use_relative_paths = git_config_bool(var, value); > > > > As we're trying to remove global variables from libgit.a as part of the > > libification effort I'd be much happier if "use_relative_paths" was > > declared as a "static int" in this file and then passed down to the > > functions that need it rather than declaring it as a global in "worktree.c". > > I can create a getter/setter in the worktree API to handle this, but > I'd rather not pass it as an argument to every function that needs it as > that would be a lot of changes. All of these functions would need their > signatures updated to include the new parameter: > > - `add_worktree()` > - `update_worktree_location()` > - `repair_worktree_at_path()` > - `repair_worktrees()` > - `repair_worktree()` > - `write_worktree_linking_files()` There is no reason to have a "getter" and "setter" for a extern'd variable. I agree that it would be preferable to have use_relative_paths be a static int within this compilation unit and to pass it to the above functions. Thanks, Taylor