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

Re: t4014 broken by 43ae9f47ab: format-patch: use default email for generating message ids

From
Jeff King <peff@peff.net>
Date
May 24, 2012, 21:02 UTC
Message-ID
<20120524210227.GB21329@sigill.intra.peff.net>
In-Reply-To
<4FBE9EF3.9020902@alum.mit.edu>
On Thu, May 24, 2012 at 10:49:55PM +0200, Michael Haggerty wrote:
Show 11 quoted lines
> >Nobody should care, because either:
> >
> >   1. The defaults set up a reasonable hostname for your machine.
> >
> >   2. They do not, but you adjust it by setting user.email. Otherwise,
> >      your author ident would have this bogus email in it.
> 
> I'm trying hard not to get sucked into this topic (I just want the
> test suite to work again!) but I infer that the reason for the
> failure in my setup is that I have a global user.name but no global
> user.email configured.

No, not at all. The problem is that the test suite does not look in your .gitconfig at all (nor should it), but rather than providing its own sensible gitconfig, it relies on the environment variables. Your personal setup should not be relevant; only the fact that your machine happens to not have a fully qualified hostname.

> I want git to remind me to configure user.email at the repository
> level so that I can set my work email address for proprietary projects
> and my personal email for open-source projects.

What you're doing is sane. However, I suspect that format-patch silently generates bogus message-ids when you do not have your user.email set (and it always has). I wonder if it is worth having it barf when "(none)" is in the email.

For that matter, I really wonder if the "(none)" fallback even makes sense these days. We encourage people to set up user.*. But I guess it helps people on remote servers which write reflogs during a push; it is better to write junk into the reflog than to fail the push.

> Ignorant idea: since this test is executed in a test repo, would it
> help to set a dummy user.name and user.email at the test repository
> level using "git config", perhaps as part of the standard test repo
> setup?

Yes, that would solve your test failure. On the other hand, not having it has spurred more discussion of this situation, so maybe there is some good in having it that way.

At any rate, there is a slight complication, because tests sometimes make their own sub-repositories. A more sensible solution would be to put it in $HOME/.gitconfig, but that is also complicated. The tests have $HOME set to the repository directory, so the extra cruft there would cause some tests to fail (and splitting them into two directories would likewise cause other tests to fail). That can be remedied, of course, but it is definitely not a one-line fix.

I think at this point I favor just fixing your bug, either with the patch I just posted, or a slightly nicer series refactoring fmt_ident to handle this situation better (which I am working up right now).

-Peff
Previous: Michael Haggerty
Message 16 of 16 in “t4014 broken by 43ae9f47ab: format-patch: use default email for generating message ids”
  1. Michael HaggertyMay 24, 2012
  2. Jeff KingMay 24, 2012
  3. Junio C HamanoMay 24, 2012
  4. Jeff KingMay 24, 2012
  5. Jeff KingMay 24, 2012
  6. 1/7 ident: refactor empty ident error messageJeff King, May 24, 2012
  7. 2/7 ident: refactor NO_DATE flag in fmt_identJeff King, May 24, 2012
  8. 3/7 ident: let callers omit name with fmt_indentJeff King, May 24, 2012
  9. 4/7 format-patch: use GIT_COMMITTER_EMAIL in message idsJeff King, May 24, 2012
  10. 5/7 ident: rename IDENT_ERROR_ON_NO_NAME to IDENT_STRICTJeff King, May 24, 2012
  11. 6/7 ident: reject bogus email addresses with IDENT_STRICTJeff King, May 24, 2012
  12. 7/7 format-patch: do not use bogus email addresses in message idsJeff King, May 24, 2012
  13. Junio C HamanoMay 25, 2012
  14. Jeff KingMay 25, 2012
  15. Michael HaggertyMay 24, 2012
  16. Jeff KingMay 24, 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.