{"thread":{"id":"45032","subject":"possible bug: inconsistent CLI behaviour for empty user.name","startedAt":"2017-02-03T04:13:22Z","lastAt":"2017-02-28T05:37:37Z","messageCount":13,"participants":["bs.x.ttp@recursor.net","Jeff King","Junio C Hamano","Dennis Kaarsemaker","Christian Couder"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"310783","messageId":"20170203051309.a737846dd26a6ed8df1e4112@gmx.de","threadId":"45032","inReplyTo":null,"subject":"possible bug: inconsistent CLI behaviour for empty user.name","fromName":"","fromEmail":"bs.x.ttp@recursor.net","sentAt":"2017-02-03T04:13:09Z","receivedAt":"2017-02-03T04:13:22Z","isPatch":false,"sender":{"key":"bs.x.ttp@recursor.net","avatar":null},"body":"The problem is that GIT accepts a user.name of \" \" for some operations (for example when doing a simple \"git commit\"), but does require a \"non-empty\" user.name for others (like git commit --amend and git rebase). In case of the latter commands GIT fails with the message \"fatal: empty ident name (for <email@address>) not allowed\".\n\nAs people tend to do simple commits first, before amending or rebasing something, they may have to change their name after some dozen of commits which doesn't look nice.\n\nThis is certainly not a big issue, but it turns out to be quite annoying and I've already rewritten the history of a GIT repository once because of it, so that all my commits had the same author.\n\nProposed solution: GIT's requirements for user.name should not depend on the operation. Either user.name should be enforced to be non-empty everywhere or an empty user.name should be accepted everywhere. Perhaps filling out one of user.name and user.email could be sufficient.\n\n\n\n\n\n"},{"id":"312377","messageId":"20170223081157.hwfn3msfux5udmng@sigill.intra.peff.net","threadId":"45032","inReplyTo":"20170203051309.a737846dd26a6ed8df1e4112@gmx.de","subject":"Re: possible bug: inconsistent CLI behaviour for empty user.name","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2017-02-23T08:11:58Z","receivedAt":"2017-02-23T08:12:05Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Feb 03, 2017 at 05:13:09AM +0100, bs.x.ttp@recursor.net wrote:\n\n> The problem is that GIT accepts a user.name of \" \" for some operations\n> (for example when doing a simple \"git commit\"), but does require a\n> \"non-empty\" user.name for others (like git commit --amend and git\n> rebase). In case of the latter commands GIT fails with the message\n> \"fatal: empty ident name (for <email@address>) not allowed\".\n\nI think it's a bug. We try to always reject empty usernames, but the\n\"empty\" check is done before we cut off leading and trailing cruft (like\nwhitespace).\n\nThe \"--amend\" command notices because it actually parses the name out of\nthe existing commit. That version has already had its whitespace eaten\nup (when it was written into the original commit), and so it ends up as\nblank.\n\nHere's a series which fixes that along with a few other oddities I\nnoticed.\n\n  [1/4]: ident: mark error messages for translation\n  [2/4]: ident: handle NULL email when complaining of empty name\n  [3/4]: ident: reject all-crud ident name\n  [4/4]: ident: do not ignore empty config name/email\n\n ident.c                       | 49 ++++++++++++++++++++++++++-----------------\n t/t7518-ident-corner-cases.sh | 36 +++++++++++++++++++++++++++++++\n 2 files changed, 66 insertions(+), 19 deletions(-)\n create mode 100755 t/t7518-ident-corner-cases.sh\n\n\n-Peff\n"},{"id":"312378","messageId":"20170223081353.doi7u77phpbpcbiw@sigill.intra.peff.net","threadId":"45032","inReplyTo":"20170223081157.hwfn3msfux5udmng@sigill.intra.peff.net","subject":"[PATCH 2/4] ident: handle NULL email when complaining of empty name","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2017-02-23T08:13:53Z","receivedAt":"2017-02-23T08:14:13Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"If we see an empty name, we complain about and mention the\nmatching email in the error message (to give it some\ncontext). However, the \"email\" pointer may be NULL here if\nwe were planning to fill it in later from ident_default_email().\n\nThis was broken by 59f929596 (fmt_ident: refactor strictness\nchecks, 2016-02-04). Prior to that commit, we would look up\nthe default name and email before doing any other actions.\nSo one solution would be to go back to that.\n\nHowever, we can't just do so blindly. The logic for handling\nthe \"!email\" condition has grown since then. In particular,\nlooking up the default email can die if getpwuid() fails,\nbut there are other errors that should take precedence.\nCommit 734c7789a (ident: check for useConfigOnly before\nauto-detection of name/email, 2016-03-30) reordered the\nchecks so that we prefer the error message for\nuseConfigOnly.\n\nInstead, we can observe that while the name-handling depends\non \"email\" being set, the reverse is not true. So we can\nsimply set up the email variable first.\n\nThis does mean that if both are bogus, we'll complain about\nthe email before the name. But between the two, there is no\nreason to prefer one over the other.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n ident.c                       | 26 +++++++++++++-------------\n t/t7518-ident-corner-cases.sh | 20 ++++++++++++++++++++\n 2 files changed, 33 insertions(+), 13 deletions(-)\n create mode 100755 t/t7518-ident-corner-cases.sh\n\ndiff --git a/ident.c b/ident.c\nindex dde82983a..ea6034581 100644\n--- a/ident.c\n+++ b/ident.c\n@@ -351,6 +351,19 @@ const char *fmt_ident(const char *name, const char *email,\n \tint want_date = !(flag & IDENT_NO_DATE);\n \tint want_name = !(flag & IDENT_NO_NAME);\n \n+\tif (!email) {\n+\t\tif (strict && ident_use_config_only\n+\t\t    && !(ident_config_given & IDENT_MAIL_GIVEN)) {\n+\t\t\tfputs(_(env_hint), stderr);\n+\t\t\tdie(_(\"no email was given and auto-detection is disabled\"));\n+\t\t}\n+\t\temail = ident_default_email();\n+\t\tif (strict && default_email_is_bogus) {\n+\t\t\tfputs(_(env_hint), stderr);\n+\t\t\tdie(_(\"unable to auto-detect email address (got '%s')\"), email);\n+\t\t}\n+\t}\n+\n \tif (want_name) {\n \t\tint using_default = 0;\n \t\tif (!name) {\n@@ -378,19 +391,6 @@ const char *fmt_ident(const char *name, const char *email,\n \t\t}\n \t}\n \n-\tif (!email) {\n-\t\tif (strict && ident_use_config_only\n-\t\t    && !(ident_config_given & IDENT_MAIL_GIVEN)) {\n-\t\t\tfputs(_(env_hint), stderr);\n-\t\t\tdie(_(\"no email was given and auto-detection is disabled\"));\n-\t\t}\n-\t\temail = ident_default_email();\n-\t\tif (strict && default_email_is_bogus) {\n-\t\t\tfputs(_(env_hint), stderr);\n-\t\t\tdie(_(\"unable to auto-detect email address (got '%s')\"), email);\n-\t\t}\n-\t}\n-\n \tstrbuf_reset(&ident);\n \tif (want_name) {\n \t\tstrbuf_addstr_without_crud(&ident, name);\ndiff --git a/t/t7518-ident-corner-cases.sh b/t/t7518-ident-corner-cases.sh\nnew file mode 100755\nindex 000000000..6c057afc1\n--- /dev/null\n+++ b/t/t7518-ident-corner-cases.sh\n@@ -0,0 +1,20 @@\n+#!/bin/sh\n+\n+test_description='corner cases in ident strings'\n+. ./test-lib.sh\n+\n+# confirm that we do not segfault _and_ that we do not say \"(null)\", as\n+# glibc systems will quietly handle our NULL pointer\n+#\n+# Note also that we can't use \"env\" here because we need to unset a variable,\n+# and \"-u\" is not portable.\n+test_expect_success 'empty name and missing email' '\n+\t(\n+\t\tsane_unset GIT_AUTHOR_EMAIL &&\n+\t\tGIT_AUTHOR_NAME= &&\n+\t\ttest_must_fail git commit --allow-empty -m foo 2>err &&\n+\t\ttest_i18ngrep ! null err\n+\t)\n+'\n+\n+test_done\n-- \n2.12.0.rc2.597.g959f68882\n\n"},{"id":"312379","messageId":"20170223081230.4u4xpebfhmr2h4gk@sigill.intra.peff.net","threadId":"45032","inReplyTo":"20170223081157.hwfn3msfux5udmng@sigill.intra.peff.net","subject":"[PATCH 1/4] ident: mark error messages for translation","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2017-02-23T08:12:30Z","receivedAt":"2017-02-23T08:14:52Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"We already translate the big \"please tell me who you are\"\nhint, but missed the individual error messages that go with\nit.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n ident.c | 12 ++++++------\n 1 file changed, 6 insertions(+), 6 deletions(-)\n\ndiff --git a/ident.c b/ident.c\nindex ac4ae02b4..dde82983a 100644\n--- a/ident.c\n+++ b/ident.c\n@@ -357,13 +357,13 @@ const char *fmt_ident(const char *name, const char *email,\n \t\t\tif (strict && ident_use_config_only\n \t\t\t    && !(ident_config_given & IDENT_NAME_GIVEN)) {\n \t\t\t\tfputs(_(env_hint), stderr);\n-\t\t\t\tdie(\"no name was given and auto-detection is disabled\");\n+\t\t\t\tdie(_(\"no name was given and auto-detection is disabled\"));\n \t\t\t}\n \t\t\tname = ident_default_name();\n \t\t\tusing_default = 1;\n \t\t\tif (strict && default_name_is_bogus) {\n \t\t\t\tfputs(_(env_hint), stderr);\n-\t\t\t\tdie(\"unable to auto-detect name (got '%s')\", name);\n+\t\t\t\tdie(_(\"unable to auto-detect name (got '%s')\"), name);\n \t\t\t}\n \t\t}\n \t\tif (!*name) {\n@@ -371,7 +371,7 @@ const char *fmt_ident(const char *name, const char *email,\n \t\t\tif (strict) {\n \t\t\t\tif (using_default)\n \t\t\t\t\tfputs(_(env_hint), stderr);\n-\t\t\t\tdie(\"empty ident name (for <%s>) not allowed\", email);\n+\t\t\t\tdie(_(\"empty ident name (for <%s>) not allowed\"), email);\n \t\t\t}\n \t\t\tpw = xgetpwuid_self(NULL);\n \t\t\tname = pw->pw_name;\n@@ -382,12 +382,12 @@ const char *fmt_ident(const char *name, const char *email,\n \t\tif (strict && ident_use_config_only\n \t\t    && !(ident_config_given & IDENT_MAIL_GIVEN)) {\n \t\t\tfputs(_(env_hint), stderr);\n-\t\t\tdie(\"no email was given and auto-detection is disabled\");\n+\t\t\tdie(_(\"no email was given and auto-detection is disabled\"));\n \t\t}\n \t\temail = ident_default_email();\n \t\tif (strict && default_email_is_bogus) {\n \t\t\tfputs(_(env_hint), stderr);\n-\t\t\tdie(\"unable to auto-detect email address (got '%s')\", email);\n+\t\t\tdie(_(\"unable to auto-detect email address (got '%s')\"), email);\n \t\t}\n \t}\n \n@@ -403,7 +403,7 @@ const char *fmt_ident(const char *name, const char *email,\n \t\tstrbuf_addch(&ident, ' ');\n \t\tif (date_str && date_str[0]) {\n \t\t\tif (parse_date(date_str, &ident) < 0)\n-\t\t\t\tdie(\"invalid date format: %s\", date_str);\n+\t\t\t\tdie(_(\"invalid date format: %s\"), date_str);\n \t\t}\n \t\telse\n \t\t\tstrbuf_addstr(&ident, ident_default_date());\n-- \n2.12.0.rc2.597.g959f68882\n\n"},{"id":"312380","messageId":"20170223081555.3yfgm2l7dsjbk4y5@sigill.intra.peff.net","threadId":"45032","inReplyTo":"20170223081157.hwfn3msfux5udmng@sigill.intra.peff.net","subject":"[PATCH 3/4] ident: reject all-crud ident name","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2017-02-23T08:15:55Z","receivedAt":"2017-02-23T08:16:28Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"An ident name consisting of only \"crud\" characters (like\nwhitespace or punctuation) is effectively the same as an\nempty one, because our strbuf_addstr_without_crud() will\nremove those characters.\n\nWe reject an empty name when formatting a strict ident, but\ndon't notice an all-crud one because our check happens\nbefore the crud-removal step.\n\nWe could skip past the crud before checking for an empty\nname, but let's make it a separate code path, for two\nreasons. One is that we can give a more specific error\nmessage. And two is that unlike a blank name, we probably\ndon't want to kick in the fallback-to-username behavior.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n ident.c                       | 11 +++++++++++\n t/t7518-ident-corner-cases.sh |  5 +++++\n 2 files changed, 16 insertions(+)\n\ndiff --git a/ident.c b/ident.c\nindex ea6034581..ead09ff7f 100644\n--- a/ident.c\n+++ b/ident.c\n@@ -203,6 +203,15 @@ static int crud(unsigned char c)\n \t\tc == '\\'';\n }\n \n+static int has_non_crud(const char *str)\n+{\n+\tfor (; *str; str++) {\n+\t\tif (!crud(*str))\n+\t\t\treturn 1;\n+\t}\n+\treturn 0;\n+}\n+\n /*\n  * Copy over a string to the destination, but avoid special\n  * characters ('\\n', '<' and '>') and remove crud at the end\n@@ -389,6 +398,8 @@ const char *fmt_ident(const char *name, const char *email,\n \t\t\tpw = xgetpwuid_self(NULL);\n \t\t\tname = pw->pw_name;\n \t\t}\n+\t\tif (strict && !has_non_crud(name))\n+\t\t\tdie(_(\"name consists only of disallowed characters: %s\"), name);\n \t}\n \n \tstrbuf_reset(&ident);\ndiff --git a/t/t7518-ident-corner-cases.sh b/t/t7518-ident-corner-cases.sh\nindex 6c057afc1..3d2560c3c 100755\n--- a/t/t7518-ident-corner-cases.sh\n+++ b/t/t7518-ident-corner-cases.sh\n@@ -17,4 +17,9 @@ test_expect_success 'empty name and missing email' '\n \t)\n '\n \n+test_expect_success 'commit rejects all-crud name' '\n+\ttest_must_fail env GIT_AUTHOR_NAME=\" .;<>\" \\\n+\t\tgit commit --allow-empty -m foo\n+'\n+\n test_done\n-- \n2.12.0.rc2.597.g959f68882\n\n"},{"id":"312381","messageId":"20170223081708.ge34zjkmpsolocqx@sigill.intra.peff.net","threadId":"45032","inReplyTo":"20170223081157.hwfn3msfux5udmng@sigill.intra.peff.net","subject":"[PATCH 4/4] ident: do not ignore empty config name/email","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2017-02-23T08:17:08Z","receivedAt":"2017-02-23T08:17:15Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"When we read user.name and user.email from a config file,\nthey go into strbufs. When a caller asks ident_default_name()\nfor the value, we fallback to auto-detecting if the strbuf\nis empty.\n\nThat means that explicitly setting an empty string in the\nconfig is identical to not setting it at all. This is\npotentially confusing, as we usually accept a configured\nvalue as the final value.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\nThis one is perhaps questionable. Maybe somebody is relying on setting a\nper-repo user.name to override a ~/.gitconfig value and enforce\nauto-detection?\n\n ident.c                       |  4 ++--\n t/t7518-ident-corner-cases.sh | 11 +++++++++++\n 2 files changed, 13 insertions(+), 2 deletions(-)\n\ndiff --git a/ident.c b/ident.c\nindex ead09ff7f..c0364fe3a 100644\n--- a/ident.c\n+++ b/ident.c\n@@ -153,7 +153,7 @@ static void copy_email(const struct passwd *pw, struct strbuf *email,\n \n const char *ident_default_name(void)\n {\n-\tif (!git_default_name.len) {\n+\tif (!(ident_config_given & IDENT_NAME_GIVEN) && !git_default_name.len) {\n \t\tcopy_gecos(xgetpwuid_self(&default_name_is_bogus), &git_default_name);\n \t\tstrbuf_trim(&git_default_name);\n \t}\n@@ -162,7 +162,7 @@ const char *ident_default_name(void)\n \n const char *ident_default_email(void)\n {\n-\tif (!git_default_email.len) {\n+\tif (!(ident_config_given & IDENT_MAIL_GIVEN) && !git_default_email.len) {\n \t\tconst char *email = getenv(\"EMAIL\");\n \n \t\tif (email && email[0]) {\ndiff --git a/t/t7518-ident-corner-cases.sh b/t/t7518-ident-corner-cases.sh\nindex 3d2560c3c..ef570ac62 100755\n--- a/t/t7518-ident-corner-cases.sh\n+++ b/t/t7518-ident-corner-cases.sh\n@@ -22,4 +22,15 @@ test_expect_success 'commit rejects all-crud name' '\n \t\tgit commit --allow-empty -m foo\n '\n \n+# We must test the actual error message here, as an unwanted\n+# auto-detection could fail for other reasons.\n+test_expect_success 'empty configured name does not auto-detect' '\n+\t(\n+\t\tsane_unset GIT_AUTHOR_NAME &&\n+\t\ttest_must_fail \\\n+\t\t\tgit -c user.name= commit --allow-empty -m foo 2>err &&\n+\t\ttest_i18ngrep \"empty ident name\" err\n+\t)\n+'\n+\n test_done\n-- \n2.12.0.rc2.597.g959f68882\n"},{"id":"312440","messageId":"xmqqfuj47hfk.fsf@gitster.mtv.corp.google.com","threadId":"45032","inReplyTo":"20170223081708.ge34zjkmpsolocqx@sigill.intra.peff.net","subject":"Re: [PATCH 4/4] ident: do not ignore empty config name/email","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-02-23T20:58:39Z","receivedAt":"2017-02-23T20:58:46Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> This one is perhaps questionable. Maybe somebody is relying on setting a\n> per-repo user.name to override a ~/.gitconfig value and enforce\n> auto-detection?\n\nThanks for splitting this step out.  1/4 and 2/4 are obvious\nimprovements, and 3/4 is a very sensible fix.  Compared to those\nthree, this one does smell questionable, because I do not quite see\nany other reasonable fallback other than the auto-detection if the\nuser gives an empty ident on purpose.  \n\nErroring out to say \"don't do that\" is probably not too bad, but\nperhaps we are being run by a script that is doing a best-effort\nconversion from $ANOTHER_SCM using a list of known authors that is\nincomplete, ending up feeding empty ident and allowing us to fall\nback to attribute them to the user who runs the script.  I do not\nsee a point in breaking that user and having her or him update the\nscript to stuff in a truly bogus \"Unknown <unknown>\" name.\n\n>\n>  ident.c                       |  4 ++--\n>  t/t7518-ident-corner-cases.sh | 11 +++++++++++\n>  2 files changed, 13 insertions(+), 2 deletions(-)\n>\n> diff --git a/ident.c b/ident.c\n> index ead09ff7f..c0364fe3a 100644\n> --- a/ident.c\n> +++ b/ident.c\n> @@ -153,7 +153,7 @@ static void copy_email(const struct passwd *pw, struct strbuf *email,\n>  \n>  const char *ident_default_name(void)\n>  {\n> -\tif (!git_default_name.len) {\n> +\tif (!(ident_config_given & IDENT_NAME_GIVEN) && !git_default_name.len) {\n>  \t\tcopy_gecos(xgetpwuid_self(&default_name_is_bogus), &git_default_name);\n>  \t\tstrbuf_trim(&git_default_name);\n>  \t}\n> @@ -162,7 +162,7 @@ const char *ident_default_name(void)\n>  \n>  const char *ident_default_email(void)\n>  {\n> -\tif (!git_default_email.len) {\n> +\tif (!(ident_config_given & IDENT_MAIL_GIVEN) && !git_default_email.len) {\n>  \t\tconst char *email = getenv(\"EMAIL\");\n>  \n>  \t\tif (email && email[0]) {\n> diff --git a/t/t7518-ident-corner-cases.sh b/t/t7518-ident-corner-cases.sh\n> index 3d2560c3c..ef570ac62 100755\n> --- a/t/t7518-ident-corner-cases.sh\n> +++ b/t/t7518-ident-corner-cases.sh\n> @@ -22,4 +22,15 @@ test_expect_success 'commit rejects all-crud name' '\n>  \t\tgit commit --allow-empty -m foo\n>  '\n>  \n> +# We must test the actual error message here, as an unwanted\n> +# auto-detection could fail for other reasons.\n> +test_expect_success 'empty configured name does not auto-detect' '\n> +\t(\n> +\t\tsane_unset GIT_AUTHOR_NAME &&\n> +\t\ttest_must_fail \\\n> +\t\t\tgit -c user.name= commit --allow-empty -m foo 2>err &&\n> +\t\ttest_i18ngrep \"empty ident name\" err\n> +\t)\n> +'\n> +\n>  test_done\n"},{"id":"312494","messageId":"20170224010823.my4wmdyezjuqajfx@sigill.intra.peff.net","threadId":"45032","inReplyTo":"xmqqfuj47hfk.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH 4/4] ident: do not ignore empty config name/email","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2017-02-24T01:08:23Z","receivedAt":"2017-02-24T01:08:30Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Feb 23, 2017 at 12:58:39PM -0800, Junio C Hamano wrote:\n\n> Jeff King <peff@peff.net> writes:\n> \n> > This one is perhaps questionable. Maybe somebody is relying on setting a\n> > per-repo user.name to override a ~/.gitconfig value and enforce\n> > auto-detection?\n> \n> Thanks for splitting this step out.  1/4 and 2/4 are obvious\n> improvements, and 3/4 is a very sensible fix.  Compared to those\n> three, this one does smell questionable, because I do not quite see\n> any other reasonable fallback other than the auto-detection if the\n> user gives an empty ident on purpose.\n\nThe outcomes are basically:\n\n  1. In strict mode (making a commit, etc), we'll die with \"empty name\n     not allowed\". My thinking was that this is less confusing for the\n     user.\n\n  2. In non-strict mode, we'd use a blank name instead of trying your\n     username (or dying if you don't have an /etc/passwd entry).\n\n> Erroring out to say \"don't do that\" is probably not too bad, but\n> perhaps we are being run by a script that is doing a best-effort\n> conversion from $ANOTHER_SCM using a list of known authors that is\n> incomplete, ending up feeding empty ident and allowing us to fall\n> back to attribute them to the user who runs the script.  I do not\n> see a point in breaking that user and having her or him update the\n> script to stuff in a truly bogus \"Unknown <unknown>\" name.\n\nKeep in mind this _only_ affects Git's config variables. So a script\nfeeding git via GIT_AUTHOR_NAME, etc, shouldn't change at all with this\ncode. If your script is doing \"git -c user.name=whatever commit\", I\nthink you should reconsider your script. :)\n\nSo I dunno. I could really go either way on it. Feel free to drop it, or\neven move it into a separate topic to be cooked longer.\n\n-Peff\n"},{"id":"312498","messageId":"xmqqlgsw5iu8.fsf@gitster.mtv.corp.google.com","threadId":"45032","inReplyTo":"20170224010823.my4wmdyezjuqajfx@sigill.intra.peff.net","subject":"Re: [PATCH 4/4] ident: do not ignore empty config name/email","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-02-24T04:11:11Z","receivedAt":"2017-02-24T04:11:21Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> Keep in mind this _only_ affects Git's config variables. So a script\n> feeding git via GIT_AUTHOR_NAME, etc, shouldn't change at all with this\n> code.\n\nAh, that changes the equation somewhat ;-)\n\n> So I dunno. I could really go either way on it. Feel free to drop it, or\n> even move it into a separate topic to be cooked longer.\n\nIf it were 5 years ago, it would have been different, but I do not\nthink cooking it longer in 'next' would smoke out breakages in\nobscure scripts any longer.  Git is used by too many people who have\nnever seen its source these days.\n\n"},{"id":"312500","messageId":"20170224041807.5g3yogfnsoqegqkl@sigill.intra.peff.net","threadId":"45032","inReplyTo":"xmqqlgsw5iu8.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH 4/4] ident: do not ignore empty config name/email","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2017-02-24T04:18:07Z","receivedAt":"2017-02-24T04:18:22Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, Feb 23, 2017 at 08:11:11PM -0800, Junio C Hamano wrote:\n\n> > So I dunno. I could really go either way on it. Feel free to drop it, or\n> > even move it into a separate topic to be cooked longer.\n> \n> If it were 5 years ago, it would have been different, but I do not\n> think cooking it longer in 'next' would smoke out breakages in\n> obscure scripts any longer.  Git is used by too many people who have\n> never seen its source these days.\n\nYeah, I have noticed that, too. I wonder if it would be interesting to\ncut \"weeklies\" or something of \"master\" or even \"next\" that people could\ninstall with a single click.\n\nOf course it's not like we have a binary installer in the first place,\nso I guess that's a prerequisite.\n\n-Peff\n"},{"id":"312726","messageId":"1488208102.10235.3.camel@kaarsemaker.net","threadId":"45032","inReplyTo":"20170224041807.5g3yogfnsoqegqkl@sigill.intra.peff.net","subject":"Re: [PATCH 4/4] ident: do not ignore empty config name/email","fromName":"Dennis Kaarsemaker","fromEmail":"dennis@kaarsemaker.net","sentAt":"2017-02-27T15:08:22Z","receivedAt":"2017-02-27T15:08:49Z","isPatch":true,"sender":{"key":"dennis@kaarsemaker.net","avatar":"https://avatars.githubusercontent.com/u/200649?v=4"},"body":"On Thu, 2017-02-23 at 23:18 -0500, Jeff King wrote:\n> On Thu, Feb 23, 2017 at 08:11:11PM -0800, Junio C Hamano wrote:\n> \n> > > So I dunno. I could really go either way on it. Feel free to drop it, or\n> > > even move it into a separate topic to be cooked longer.\n> > \n> > If it were 5 years ago, it would have been different, but I do not\n> > think cooking it longer in 'next' would smoke out breakages in\n> > obscure scripts any longer.  Git is used by too many people who have\n> > never seen its source these days.\n> \n> Yeah, I have noticed that, too. I wonder if it would be interesting to\n> cut \"weeklies\" or something of \"master\" or even \"next\" that people could\n> install with a single click.\n> \n> Of course it's not like we have a binary installer in the first place,\n> so I guess that's a prerequisite.\n\nI provide daily[*] snapshots of git's master and next tree as packages\nfor Ubuntu, Debian, Fedora and CentOS on launchpad and SuSE's\nopenbuildservice. If there's sufficient interest in this (I know of\nonly a few users), I can try to put more effort into this.\n\n-- \nDennis Kaarsemaker\nhttp://www.kaarsemaker.net\n\n[*]When the tooling isn't broken for some reason.\n"},{"id":"312774","messageId":"xmqq1sujwek2.fsf@gitster.mtv.corp.google.com","threadId":"45032","inReplyTo":"1488208102.10235.3.camel@kaarsemaker.net","subject":"Re: [PATCH 4/4] ident: do not ignore empty config name/email","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-02-27T20:42:53Z","receivedAt":"2017-02-27T21:14:37Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Dennis Kaarsemaker <dennis@kaarsemaker.net> writes:\n\n> On Thu, 2017-02-23 at 23:18 -0500, Jeff King wrote:\n>> On Thu, Feb 23, 2017 at 08:11:11PM -0800, Junio C Hamano wrote:\n>> \n>> > > So I dunno. I could really go either way on it. Feel free to drop it, or\n>> > > even move it into a separate topic to be cooked longer.\n>> > \n>> > If it were 5 years ago, it would have been different, but I do not\n>> > think cooking it longer in 'next' would smoke out breakages in\n>> > obscure scripts any longer.  Git is used by too many people who have\n>> > never seen its source these days.\n>> \n>> Yeah, I have noticed that, too. I wonder if it would be interesting to\n>> cut \"weeklies\" or something of \"master\" or even \"next\" that people could\n>> install with a single click.\n>> \n>> Of course it's not like we have a binary installer in the first place,\n>> so I guess that's a prerequisite.\n>\n> I provide daily[*] snapshots of git's master and next tree as packages\n> for Ubuntu, Debian, Fedora and CentOS on launchpad and SuSE's\n> openbuildservice. If there's sufficient interest in this (I know of\n> only a few users), I can try to put more effort into this.\n\nThat sounds handy for people who do not build from the source\nthemselves.\n\nChristian, perhaps rev-news can help advertising Dennis's effort to\nrecruit like-minded souls?\n"},{"id":"312819","messageId":"CAP8UFD3zh26TdU7KUNK7v3qOd-eddwXii27cYu=bmbYO5di3Fw@mail.gmail.com","threadId":"45032","inReplyTo":"xmqq1sujwek2.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH 4/4] ident: do not ignore empty config name/email","fromName":"Christian Couder","fromEmail":"christian.couder@gmail.com","sentAt":"2017-02-28T05:28:54Z","receivedAt":"2017-02-28T05:37:37Z","isPatch":true,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"On Mon, Feb 27, 2017 at 9:42 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> Dennis Kaarsemaker <dennis@kaarsemaker.net> writes:\n>\n>> On Thu, 2017-02-23 at 23:18 -0500, Jeff King wrote:\n>>> On Thu, Feb 23, 2017 at 08:11:11PM -0800, Junio C Hamano wrote:\n>>>\n>>> > > So I dunno. I could really go either way on it. Feel free to drop it, or\n>>> > > even move it into a separate topic to be cooked longer.\n>>> >\n>>> > If it were 5 years ago, it would have been different, but I do not\n>>> > think cooking it longer in 'next' would smoke out breakages in\n>>> > obscure scripts any longer.  Git is used by too many people who have\n>>> > never seen its source these days.\n>>>\n>>> Yeah, I have noticed that, too. I wonder if it would be interesting to\n>>> cut \"weeklies\" or something of \"master\" or even \"next\" that people could\n>>> install with a single click.\n>>>\n>>> Of course it's not like we have a binary installer in the first place,\n>>> so I guess that's a prerequisite.\n>>\n>> I provide daily[*] snapshots of git's master and next tree as packages\n>> for Ubuntu, Debian, Fedora and CentOS on launchpad and SuSE's\n>> openbuildservice. If there's sufficient interest in this (I know of\n>> only a few users), I can try to put more effort into this.\n>\n> That sounds handy for people who do not build from the source\n> themselves.\n>\n> Christian, perhaps rev-news can help advertising Dennis's effort to\n> recruit like-minded souls?\n\nYeah, I had already noticed this thread and now Jakub has mentioned it on:\n\nhttps://github.com/git/git.github.io/issues/231\n\nso yeah we will advertise it one way or another.\n"}]}