diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-05-18 14:40:05 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-05-18 14:40:05 -0700 |
commit | e9ef83a299096d38c557fe71c23a3f3e0b1d1a7f (patch) | |
tree | 01b567b37750c8a681dcb717b42268ff6b94d10b /ident.c | |
parent | 787a490ceee14d456912a1ce8d865be9c92b6f99 (diff) | |
parent | d3c06c196964c02f7343b53301e0e85679fad51f (diff) | |
download | git-e9ef83a299096d38c557fe71c23a3f3e0b1d1a7f.tar.gz |
Merge branch 'da/user-useconfigonly' into HEAD
The "user.useConfigOnly" configuration variable makes it an error
if users do not explicitly set user.name and user.email. However,
its check was not done early enough and allowed another error to
trigger, reporting that the default value we guessed from the
system setting was unusable. This was a suboptimal end-user
experience as we want the users to set user.name/user.email without
relying on the auto-detection at all.
* da/user-useconfigonly:
ident: give "please tell me" message upon useConfigOnly error
ident: check for useConfigOnly before auto-detection of name/email
Diffstat (limited to 'ident.c')
-rw-r--r-- | ident.c | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -351,15 +351,17 @@ const char *fmt_ident(const char *name, const char *email, if (want_name) { int using_default = 0; if (!name) { + if (strict && ident_use_config_only + && !(ident_config_given & IDENT_NAME_GIVEN)) { + fputs(env_hint, stderr); + die("no name was given and auto-detection is disabled"); + } name = ident_default_name(); using_default = 1; if (strict && default_name_is_bogus) { fputs(env_hint, stderr); die("unable to auto-detect name (got '%s')", name); } - if (strict && ident_use_config_only - && !(ident_config_given & IDENT_NAME_GIVEN)) - die("user.useConfigOnly set but no name given"); } if (!*name) { struct passwd *pw; @@ -374,14 +376,16 @@ const char *fmt_ident(const char *name, const char *email, } if (!email) { + if (strict && ident_use_config_only + && !(ident_config_given & IDENT_MAIL_GIVEN)) { + fputs(env_hint, stderr); + die("no email was given and auto-detection is disabled"); + } email = ident_default_email(); if (strict && default_email_is_bogus) { fputs(env_hint, stderr); die("unable to auto-detect email address (got '%s')", email); } - if (strict && ident_use_config_only - && !(ident_config_given & IDENT_MAIL_GIVEN)) - die("user.useConfigOnly set but no mail given"); } strbuf_reset(&ident); |