git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] send-email: add proper default sender

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Nov 13, 2012, 00:54 UTC
Message-ID
<CAMP44s16y9WSmnTdb04EMSzXVgzfYP7pSMo6qZi0HY0bjouA0w@mail.gmail.com>
In-Reply-To
<20121113000217.GH10531@sigill.intra.peff.net>
On Tue, Nov 13, 2012 at 1:02 AM, Jeff King <peff@peff.net> wrote:
Show 17 quoted lines
> On Tue, Nov 13, 2012 at 12:42:02AM +0100, Felipe Contreras wrote:
>
>> > Why not use Git::ident_person() here? It saves some code, and would also
>> > respect environment variables. Or better yet...
>>
>> I assume there was a reason why that code was asking for input;
>> precisely because it would use the environment variables. For some
>> reason the user might have exported GIT_AUTHOR_EMAIL, or maybe EMAIL
>> is not right, or the full name config.
>>
>> OTOH user.name/.email configurations come clearly from the user.
>
> But we use the environment to default the field, so the distinction
> doesn't make much sense to me.  Plus, it has always been the case that
> you can use git without setting user.*, but instead only using the
> environment. I don't see any reason not to follow that principle here,
> too.

And that's why a lot of commits end up like michael <michael@michael-laptop.(none)>.

Show 34 quoted lines
> The one distinction that would make sense to me is pausing to ask when
> we use "implicit" methods to look up the ident, like concatenating the
> username with the hostname to get the email.
>
> Git::ident uses "git var" to do its lookup, which will use IDENT_STRICT;
> that stops most junk like empty names and bogus domains. But I think we
> would want to go one step further and actually check
> user_ident_sufficiently_given.  Unfortunately, that is not currently
> available outside of C. You'd probably want something like:
>
> diff --git a/builtin/var.c b/builtin/var.c
> index aedbb53..eaf324e 100644
> --- a/builtin/var.c
> +++ b/builtin/var.c
> @@ -26,6 +26,12 @@ static const char *pager(int flag)
>         return pgm;
>  }
>
> +static const char *explicit_ident(int flag)
> +{
> +       git_committer_info(flag);
> +       return user_ident_sufficiently_given() ? "1" : "0";
> +}
> +
>  struct git_var {
>         const char *name;
>         const char *(*read)(int);
> @@ -35,6 +41,7 @@ static struct git_var git_vars[] = {
>         { "GIT_AUTHOR_IDENT",   git_author_info },
>         { "GIT_EDITOR", editor },
>         { "GIT_PAGER", pager },
> +       { "GIT_EXPLICIT_IDENT", explicit_ident },
>         { "", NULL },
>  };

Probably. But what I really want is to stop 'git send-email' from asking. I think the one next step further can be done later.

-- 
Felipe Contreras
Previous: Junio C HamanoNext: Jeff King
Message 9 of 76 in “send-email: add proper default sender”
  1. send-email: add proper default senderFelipe Contreras, Nov 11, 2012
  2. Ramkumar RamachandraNov 11, 2012
  3. Felipe ContrerasNov 11, 2012
  4. Jeff KingNov 12, 2012
  5. Felipe ContrerasNov 12, 2012
  6. Jeff KingNov 13, 2012
  7. Jeff KingNov 13, 2012
  8. Junio C HamanoNov 13, 2012
  9. Felipe ContrerasNov 13, 2012
  10. Jeff KingNov 13, 2012
  11. Jeff KingNov 13, 2012
  12. Felipe ContrerasNov 13, 2012
  13. Jeff KingNov 13, 2012
  14. Felipe ContrerasNov 13, 2012
  15. Felipe ContrerasNov 13, 2012
  16. Jeff KingNov 13, 2012
  17. Felipe ContrerasNov 13, 2012
  18. Jeff KingNov 13, 2012
  19. 1/6 ident: make user_ident_explicitly_given privateJeff King, Nov 13, 2012
  20. Jonathan NiederNov 14, 2012
  21. Jeff KingNov 14, 2012
  22. 2/6 ident: keep separate "explicit" flags for author and committerJeff King, Nov 13, 2012
  23. 3/6 var: accept multiple variables on the command lineJeff King, Nov 13, 2012
  24. Jonathan NiederNov 14, 2012
  25. Jeff KingNov 14, 2012
  26. 4/6 var: provide explicit/implicit ident informationJeff King, Nov 13, 2012
  27. Jonathan NiederNov 14, 2012
  28. Jeff KingNov 14, 2012
  29. 5/6 Git.pm: teach "ident" to query explicitnessJeff King, Nov 13, 2012
  30. Jonathan NiederNov 14, 2012
  31. Jeff KingNov 14, 2012
  32. 6/6 send-email: do not prompt for explicit repo identJeff King, Nov 13, 2012
  33. Jonathan NiederNov 14, 2012
  34. Jeff KingNov 14, 2012
  35. Jeff KingNov 14, 2012
  36. Felipe ContrerasNov 13, 2012
  37. Jeff KingNov 15, 2012
  38. Felipe ContrerasNov 15, 2012
  39. Jeff KingNov 15, 2012
  40. Felipe ContrerasNov 15, 2012
  41. 0/8 loosening "sender" prompt in send-emailJeff King, Nov 15, 2012
  42. 1/8 test-lib: allow negation of prerequisitesJeff King, Nov 15, 2012
  43. Jonathan NiederNov 15, 2012
  44. Jeff KingNov 15, 2012
  45. Jonathan NiederNov 15, 2012
  46. 2/8 t7502: factor out autoident prerequisiteJeff King, Nov 15, 2012
  47. Jonathan NiederNov 15, 2012
  48. 3/8 ident: make user_ident_explicitly_given staticJeff King, Nov 15, 2012
  49. Jonathan NiederNov 15, 2012
  50. 4/8 ident: keep separate "explicit" flags for author and committerJeff King, Nov 15, 2012
  51. Jonathan NiederNov 15, 2012
  52. 5/8 var: accept multiple variables on the command lineJeff King, Nov 15, 2012
  53. Jonathan NiederNov 15, 2012
  54. 6/8 var: provide explicit/implicit ident informationJeff King, Nov 15, 2012
  55. 7/8 Git.pm: teach "ident" to query explicitnessJeff King, Nov 15, 2012
  56. Jonathan NiederNov 15, 2012
  57. 8/8 send-email: do not prompt for explicit repo identJeff King, Nov 15, 2012
  58. Felipe ContrerasNov 15, 2012
  59. Jeff KingNov 15, 2012
  60. Felipe ContrerasNov 15, 2012
  61. Jeff KingNov 15, 2012
  62. Jeff KingNov 15, 2012
  63. Jeff KingNov 15, 2012
  64. Junio C HamanoNov 15, 2012
  65. Jeff KingNov 15, 2012
  66. Junio C HamanoNov 16, 2012
  67. Jeff KingNov 16, 2012
  68. Felipe ContrerasNov 16, 2012
  69. Jeff KingNov 16, 2012
  70. Junio C HamanoNov 16, 2012
  71. Jonathan NiederNov 15, 2012
  72. Junio C HamanoNov 13, 2012
  73. Jeff KingNov 13, 2012
  74. Junio C HamanoNov 13, 2012
  75. Erik Faye-LundNov 13, 2012
  76. Jeff KingNov 13, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.