commit: allow suppression of implicit identity advice

We now nag the user with a giant warning when their identity
was pulled from the username, hostname, and gecos
information, in case it is not correct. Most users will
suppress this by simply setting up their information
correctly.

However, there may be some users who consciously want to use
that information, because having the value change from host
to host contains useful information. These users can now set
advice.implicitidentity to false to suppress the message.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2010-01-13 15:17:08 -05:00 committed by Junio C Hamano
parent 49ff9a7a02
commit b706fcfe93
4 changed files with 11 additions and 2 deletions

View File

@ -130,6 +130,10 @@ advice.*::
Advice shown when linkgit:git-merge[1] refuses to Advice shown when linkgit:git-merge[1] refuses to
merge to avoid overwritting local changes. merge to avoid overwritting local changes.
Default: true. Default: true.
implicitIdentity::
Advice on how to set your identity configuration when
your information is guessed from the system username and
domain name. Default: true.
-- --
core.fileMode:: core.fileMode::

View File

@ -3,6 +3,7 @@
int advice_push_nonfastforward = 1; int advice_push_nonfastforward = 1;
int advice_status_hints = 1; int advice_status_hints = 1;
int advice_commit_before_merge = 1; int advice_commit_before_merge = 1;
int advice_implicit_identity = 1;
static struct { static struct {
const char *name; const char *name;
@ -11,6 +12,7 @@ static struct {
{ "pushnonfastforward", &advice_push_nonfastforward }, { "pushnonfastforward", &advice_push_nonfastforward },
{ "statushints", &advice_status_hints }, { "statushints", &advice_status_hints },
{ "commitbeforemerge", &advice_commit_before_merge }, { "commitbeforemerge", &advice_commit_before_merge },
{ "implicitidentity", &advice_implicit_identity },
}; };
int git_default_advice_config(const char *var, const char *value) int git_default_advice_config(const char *var, const char *value)

View File

@ -4,6 +4,7 @@
extern int advice_push_nonfastforward; extern int advice_push_nonfastforward;
extern int advice_status_hints; extern int advice_status_hints;
extern int advice_commit_before_merge; extern int advice_commit_before_merge;
extern int advice_implicit_identity;
int git_default_advice_config(const char *var, const char *value); int git_default_advice_config(const char *var, const char *value);

View File

@ -994,8 +994,10 @@ static void print_summary(const char *prefix, const unsigned char *sha1)
if (!user_ident_explicitly_given) { if (!user_ident_explicitly_given) {
strbuf_addstr(&format, "\n Committer: "); strbuf_addstr(&format, "\n Committer: ");
strbuf_addbuf_percentquote(&format, &committer_ident); strbuf_addbuf_percentquote(&format, &committer_ident);
strbuf_addch(&format, '\n'); if (advice_implicit_identity) {
strbuf_addstr(&format, implicit_ident_advice); strbuf_addch(&format, '\n');
strbuf_addstr(&format, implicit_ident_advice);
}
} }
strbuf_release(&author_ident); strbuf_release(&author_ident);
strbuf_release(&committer_ident); strbuf_release(&committer_ident);