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

[PATCH 0/13] ident cleanups and bugfixes

From
Jeff King <peff@peff.net>
Date
May 18, 2012, 23:05 UTC
Message-ID
<20120518230528.GA30510@sigill.intra.peff.net>
In-Reply-To
<7vsjf1e2n7.fsf@alter.siamese.dyndns.org>
On Tue, May 15, 2012 at 11:10:36AM -0700, Junio C Hamano wrote:
Show 16 quoted lines
> Jeff King <peff@peff.net> writes:
> 
> > So it seems to me like a much simpler set of rules would be:
> >
> >   1. When reading gecos, always fall back to the username if the gecos
> >      field is unavailable or blank.
> >
> >   2. Always die when the name field is blank. That means we will die
> >      when you pass in a bogus empty GIT_COMMITTER_NAME (or an empty
> >      config name), which makes a lot more sense to me than falling back;
> >      those are bogus requests, not system config problems.  And we won't
> >      ever have a blank gecos name, because we'll always fall back on the
> >      username.
> 
> That certainly sounds very simple to explain and understand, and I do not
> offhand think of anything *sane* that would break ;-)

Actually, it does end up breaking. The "error_on_no_name" check wants to see the value _before_ the fallback, because it is not just about "do not hand out an ident with an empty name", but rather about "do not hand out this crappy fallback name when the gecos field is empty". So we cannot do an "always fallback" behavior without breaking that check.

I ended up avoiding the issue in a different way, as you'll see in patch 8 below. Here's the series:

  [01/13]: ident: split setup_ident into separate functions
  [02/13]: http-push: do not access git_default_email directly
  [03/13]: fmt-merge-msg: don't use static buffer in record_person
  [04/13]: move identity config parsing to ident.c
  [05/13]: move git_default_* variables to ident.c
  [06/13]: format-patch: use default email for generating message ids
  [07/13]: fmt_ident: drop IDENT_WARN_ON_NO_NAME code
  [08/13]: ident: don't write fallback username into git_default_name
  [09/13]: drop length limitations on gecos-derived names and emails
  [10/13]: ident: report passwd errors with a more friendly message
  [11/13]: ident: use full dns names to generate email addresses
  [12/13]: ident: use a dynamic strbuf in fmt_ident
  [13/13]: format-patch: refactor get_patch_filename

Patches 2, 8, and 11 fix actual bugs. The rest of it is refactoring and cleanup; here's the diffstat:

 Documentation/git-commit-tree.txt |    9 --
 Documentation/git-var.txt         |    9 --
 builtin/fmt-merge-msg.c           |    8 +-
 builtin/log.c                     |   45 ++------
 cache.h                           |   12 +-
 config.c                          |   24 +----
 environment.c                     |    3 -
 git-compat-util.h                 |    3 +
 http-push.c                       |    2 +-
 ident.c                           |  213 ++++++++++++++++---------------------
 log-tree.c                        |   19 ++--
 log-tree.h                        |    4 +-
 wrapper.c                         |   12 ++
 13 files changed, 142 insertions(+), 221 deletions(-)
-Peff
Next: Jeff King
Message 1 of 45 in “ident cleanups and bugfixes”
  1. 0/13 ident cleanups and bugfixesJeff King, May 18, 2012
  2. 01/13 ident: split setup_ident into separate functionsJeff King, May 18, 2012
  3. 02/13 http-push: do not access git_default_email directlyJeff King, May 18, 2012
  4. 03/13 fmt-merge-msg: don't use static buffer in record_personJeff King, May 18, 2012
  5. 04/13 move identity config parsing to ident.cJeff King, May 18, 2012
  6. 05/13 move git_default_* variables to ident.cJeff King, May 18, 2012
  7. Junio C HamanoMay 21, 2012
  8. Jeff KingMay 21, 2012
  9. Jeff KingMay 21, 2012
  10. 06/13 format-patch: use default email for generating message idsJeff King, May 18, 2012
  11. Junio C HamanoMay 21, 2012
  12. Jeff KingMay 21, 2012
  13. 07/13 fmt_ident: drop IDENT_WARN_ON_NO_NAME codeJeff King, May 18, 2012
  14. 08/13 ident: don't write fallback username into git_default_nameJeff King, May 18, 2012
  15. Junio C HamanoMay 21, 2012
  16. Jeff KingMay 21, 2012
  17. Junio C HamanoMay 21, 2012
  18. 0/15 ident cleanups git_default_nameJeff King, May 21, 2012
  19. 01/15 ident: split setup_ident into separate functionsJeff King, May 21, 2012
  20. 02/15 http-push: do not access git_default_email directlyJeff King, May 21, 2012
  21. 03/15 fmt-merge-msg: don't use static buffer in record_personJeff King, May 21, 2012
  22. 04/15 move identity config parsing to ident.cJeff King, May 21, 2012
  23. 05/15 move git_default_* variables to ident.cJeff King, May 21, 2012
  24. 06/15 ident: trim trailing newline from /etc/mailnameJeff King, May 21, 2012
  25. 07/15 format-patch: use default email for generating message idsJeff King, May 21, 2012
  26. 08/15 fmt_ident: drop IDENT_WARN_ON_NO_NAME codeJeff King, May 21, 2012
  27. 09/15 ident: don't write fallback username into git_default_nameJeff King, May 21, 2012
  28. 10/15 drop length limitations on gecos-derived names and emailsJeff King, May 21, 2012
  29. [regression] Re: [PATCHv2 10/15] drop length limitations on gecos-derived names and emailsJonathan Nieder, Jan 24, 2013
  30. Jeff KingJan 25, 2013
  31. Junio C HamanoJan 25, 2013
  32. Jeff KingJan 25, 2013
  33. 11/15 ident: report passwd errors with a more friendly messageJeff King, May 21, 2012
  34. 12/15 ident: use full dns names to generate email addressesJeff King, May 21, 2012
  35. 13/15 ident: use a dynamic strbuf in fmt_identJeff King, May 21, 2012
  36. 14/15 ident: trim whitespace from default name/emailJeff King, May 21, 2012
  37. Junio C HamanoMay 22, 2012
  38. Jeff KingMay 22, 2012
  39. Junio C HamanoMay 22, 2012
  40. 15/15 format-patch: refactor get_patch_filenameJeff King, May 21, 2012
  41. 09/13 drop length limitations on gecos-derived names and emailsJeff King, May 18, 2012
  42. 10/13 ident: report passwd errors with a more friendly messageJeff King, May 18, 2012
  43. 11/13 ident: use full dns names to generate email addressesJeff King, May 18, 2012
  44. 12/13 ident: use a dynamic strbuf in fmt_identJeff King, May 18, 2012
  45. 13/13 format-patch: refactor get_patch_filenameJeff King, May 18, 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.