"Matthew Rogers via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > diff --git a/config.h b/config.h > index 91fd4c5e96..284d92fb0e 100644 > --- a/config.h > +++ b/config.h > @@ -298,7 +298,8 @@ enum config_scope { > CONFIG_SCOPE_UNKNOWN = 0, > CONFIG_SCOPE_SYSTEM, > CONFIG_SCOPE_GLOBAL, > - CONFIG_SCOPE_REPO, > + CONFIG_SCOPE_LOCAL, > + CONFIG_SCOPE_WORKTREE, > CONFIG_SCOPE_CMDLINE, > }; So the gist of the change is to split REPO into two, LOCAL and WORKTREE. If we can find a way to state that concisely, perhaps we can improve "refine enum" and make it more informative. > diff --git a/t/helper/test-config.c b/t/helper/test-config.c > index 214003d5b2..6695e463eb 100644 > --- a/t/helper/test-config.c > +++ b/t/helper/test-config.c > @@ -44,8 +44,10 @@ static const char *scope_name(enum config_scope scope) > return "system"; > case CONFIG_SCOPE_GLOBAL: > return "global"; > - case CONFIG_SCOPE_REPO: > + case CONFIG_SCOPE_LOCAL: > return "repo"; > + case CONFIG_SCOPE_WORKTREE: > + return "worktree"; > case CONFIG_SCOPE_CMDLINE: > return "cmdline"; > default: > diff --git a/t/t1308-config-set.sh b/t/t1308-config-set.sh > index 7b4e1a63eb..535b2a73f7 100755 > --- a/t/t1308-config-set.sh > +++ b/t/t1308-config-set.sh > @@ -265,7 +265,7 @@ test_expect_success 'iteration shows correct origins' ' > value=from-cmdline > origin=command line > name= > - scope=cmdline > + scope=command Why??? > EOF > GIT_CONFIG_PARAMETERS=$cmdline_config test-tool config iterate >actual && > test_cmp expect actual > diff --git a/upload-pack.c b/upload-pack.c > index a00d7ece6b..c53249cac1 100644 > --- a/upload-pack.c > +++ b/upload-pack.c > @@ -1073,7 +1073,8 @@ static int upload_pack_config(const char *var, const char *value, void *unused) > precomposed_unicode = git_config_bool(var, value); > } > > - if (current_config_scope() != CONFIG_SCOPE_REPO) { > + if (current_config_scope() != CONFIG_SCOPE_LOCAL && > + current_config_scope() != CONFIG_SCOPE_WORKTREE) { > if (!strcmp("uploadpack.packobjectshook", var)) > return git_config_string(&pack_objects_hook, var, value); > }