Browse Source

Make "empty ident" error message a bit more helpful.

It appears that some people who did not care about having bogus
names in their own commit messages are bitten by the recent
change to require a sane environment [*1*].

While it was a good idea to prevent people from using bogus
names to create commits and doing sign-offs, the error message
is not very informative.  This patch attempts to warn things
upfront and hint people how to fix their environments.

[Footnote]

*1* The thread is this one.

    http://marc.theaimsgroup.com/?t=113868084800004

    Especially this message.

    http://marc.theaimsgroup.com/?m=113932830015032

Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Junio C Hamano 19 years ago
parent
commit
925f918769
  1. 14
      ident.c

14
ident.c

@ -46,6 +46,15 @@ static void copy_gecos(struct passwd *w, char *name, int sz) @@ -46,6 +46,15 @@ static void copy_gecos(struct passwd *w, char *name, int sz)

}

static const char au_env[] = "GIT_AUTHOR_NAME";
static const char co_env[] = "GIT_COMMITTER_NAME";
static const char env_hint[] =
"\n*** Environment problem:\n"
"*** Your name cannot be determined from your system services (gecos).\n"
"*** You would need to set %s and %s\n"
"*** environment variables; otherwise you won't be able to perform\n"
"*** certain operations because of \"empty ident\" errors.\n\n";

int setup_ident(void)
{
int len;
@ -57,6 +66,11 @@ int setup_ident(void) @@ -57,6 +66,11 @@ int setup_ident(void)
/* Get the name ("gecos") */
copy_gecos(pw, git_default_name, sizeof(git_default_name));

if (!*git_default_name) {
if (!getenv(au_env) || !getenv(co_env))
fprintf(stderr, env_hint, au_env, co_env);
}

/* Make up a fake email address (name + '@' + hostname [+ '.' + domainname]) */
len = strlen(pw->pw_name);
if (len > sizeof(git_default_email)/2)

Loading…
Cancel
Save