Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > +static int set_ident_internal(const char *var, const char *value, > + struct strbuf *sb, const int flag) > +{ > + if (!value) > + return config_error_nonbool(var); > + strbuf_reset(sb); > + strbuf_addstr(sb, value); > + author_ident_explicitly_given |= flag; > + ident_config_given |= flag; > + return 0; > +} > + > +static int set_ident(const char *var, const char *value) > +{ > + if (!strcmp(var, "author.name")) > + return set_ident_internal(var, value, &git_author_name, > + IDENT_NAME_GIVEN); > + else if (!strcmp(var, "author.email")) > + return set_ident_internal(var, value, &git_author_email, > + IDENT_MAIL_GIVEN); > + else if (!strcmp(var, "committer.name")) > + return set_ident_internal(var, value, &git_committer_name, > + IDENT_NAME_GIVEN); > + else if (!strcmp(var, "committer.email")) > + return set_ident_internal(var, value, &git_committer_email, > + IDENT_MAIL_GIVEN); > + else if (!strcmp(var, "user.name")) > + return set_ident_internal(var, value, &git_default_name, > + IDENT_NAME_GIVEN); > + else if (!strcmp(var, "user.email")) > + return set_ident_internal(var, value, &git_default_email, > + IDENT_MAIL_GIVEN); > + return 0; > +} In the v5 patch from William, author_ident_explicitly_given and committer_ident_explicitly_given were set separately depending on what variable was given (e.g. user.name marked both, author.name marked only author but not committer_ident_explicitly_given). In the original before the addition of this feature with v6, giving user.name would have set both, as we can see below. Is this change intended? Or did you find that committer_ident_explicitly_given is no longer useful and the variable is not used anymore? > int git_ident_config(const char *var, const char *value, void *data) > { > if (!strcmp(var, "user.useconfigonly")) { > @@ -480,29 +551,7 @@ int git_ident_config(const char *var, const char *value, void *data) > return 0; > } > > - if (!strcmp(var, "user.name")) { > - if (!value) > - return config_error_nonbool(var); > - strbuf_reset(&git_default_name); > - strbuf_addstr(&git_default_name, value); > - committer_ident_explicitly_given |= IDENT_NAME_GIVEN; > - author_ident_explicitly_given |= IDENT_NAME_GIVEN; > - ident_config_given |= IDENT_NAME_GIVEN; > - return 0; > - } > - > - if (!strcmp(var, "user.email")) { > - if (!value) > - return config_error_nonbool(var); > - strbuf_reset(&git_default_email); > - strbuf_addstr(&git_default_email, value); > - committer_ident_explicitly_given |= IDENT_MAIL_GIVEN; > - author_ident_explicitly_given |= IDENT_MAIL_GIVEN; > - ident_config_given |= IDENT_MAIL_GIVEN; > - return 0; > - } > - > - return 0; > + return set_ident(var, value); > }