Browse Source

Merge branch 'jc/ident-whose-ident'

Error message update.

* jc/ident-whose-ident:
  ident: say whose identity is missing when giving user.name hint
maint
Junio C Hamano 4 years ago
parent
commit
e9bd00ab2d
  1. 48
      ident.c
  2. 13
      t/t7518-ident-corner-cases.sh

48
ident.c

@ -345,18 +345,32 @@ person_only: @@ -345,18 +345,32 @@ person_only:
return 0;
}

static const char *env_hint =
N_("\n"
"*** Please tell me who you are.\n"
"\n"
"Run\n"
"\n"
" git config --global user.email \"you@example.com\"\n"
" git config --global user.name \"Your Name\"\n"
"\n"
"to set your account\'s default identity.\n"
"Omit --global to set the identity only in this repository.\n"
"\n");

static void ident_env_hint(enum want_ident whose_ident)
{
switch (whose_ident) {
case WANT_AUTHOR_IDENT:
fputs(_("Author identity unknown\n"), stderr);
break;
case WANT_COMMITTER_IDENT:
fputs(_("Committer identity unknown\n"), stderr);
break;
default:
break;
}

fputs(_("\n"
"*** Please tell me who you are.\n"
"\n"
"Run\n"
"\n"
" git config --global user.email \"you@example.com\"\n"
" git config --global user.name \"Your Name\"\n"
"\n"
"to set your account\'s default identity.\n"
"Omit --global to set the identity only in this repository.\n"
"\n"), stderr);
}

const char *fmt_ident(const char *name, const char *email,
enum want_ident whose_ident, const char *date_str, int flag)
@ -375,12 +389,12 @@ const char *fmt_ident(const char *name, const char *email, @@ -375,12 +389,12 @@ 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);
ident_env_hint(whose_ident);
die(_("no email was given and auto-detection is disabled"));
}
email = ident_default_email();
if (strict && default_email_is_bogus) {
fputs(_(env_hint), stderr);
ident_env_hint(whose_ident);
die(_("unable to auto-detect email address (got '%s')"), email);
}
}
@ -397,13 +411,13 @@ const char *fmt_ident(const char *name, const char *email, @@ -397,13 +411,13 @@ const char *fmt_ident(const char *name, const char *email,
if (!name) {
if (strict && ident_use_config_only
&& !(ident_config_given & IDENT_NAME_GIVEN)) {
fputs(_(env_hint), stderr);
ident_env_hint(whose_ident);
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);
ident_env_hint(whose_ident);
die(_("unable to auto-detect name (got '%s')"), name);
}
}
@ -411,7 +425,7 @@ const char *fmt_ident(const char *name, const char *email, @@ -411,7 +425,7 @@ const char *fmt_ident(const char *name, const char *email,
struct passwd *pw;
if (strict) {
if (using_default)
fputs(_(env_hint), stderr);
ident_env_hint(whose_ident);
die(_("empty ident name (for <%s>) not allowed"), email);
}
pw = xgetpwuid_self(NULL);

13
t/t7518-ident-corner-cases.sh

@ -29,7 +29,18 @@ test_expect_success 'empty configured name does not auto-detect' ' @@ -29,7 +29,18 @@ test_expect_success 'empty configured name does not auto-detect' '
sane_unset GIT_AUTHOR_NAME &&
test_must_fail \
git -c user.name= commit --allow-empty -m foo 2>err &&
test_i18ngrep "empty ident name" err
test_i18ngrep "empty ident name" err &&
test_i18ngrep "Author identity unknown" err
)
'

test_expect_success 'empty configured name does not auto-detect for committer' '
(
sane_unset GIT_COMMITTER_NAME &&
test_must_fail \
git -c user.name= commit --allow-empty -m foo 2>err &&
test_i18ngrep "empty ident name" err &&
test_i18ngrep "Committer identity unknown" err
)
'


Loading…
Cancel
Save