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

Re: [PATCH] allow user aliases for the --author parameter

From
Jeff King <peff@peff.net>
Date
Aug 22, 2008, 16:50 UTC
Message-ID
<20080822165047.GA3339@sigill.intra.peff.net>
In-Reply-To
<48AE786C.20201@fastmail.fm>

[oops, this accidentally got taken off the list, so here is a repost to the list and all interested parties]

On Fri, Aug 22, 2008 at 10:27:24AM +0200, Michael J Gruber wrote:
Show 15 quoted lines
> There's also git svn.
> I think all of these serve different purposes, and have different
> typical numbers of entries.
> 
> - mailmap maps email addresses to full names, for display purposes only.
> Typically a long list.
> 
> - git svn's author file maps usernames to fullname <email>. But for
> every svn repo I need a file following their chosen keys (usernames),
> rather than abbreviations I would remember.
> 
> - alias files for send-email map keys to fullname <email>. That indeed
> is a mapping and a purpose similar to my intention for git commit
> --author. Problem here is that it's in perl and supports various
> different formats.

I agree with your analysis here. The mapping done by mailmap and git-svn aren't the same. The ones for send-email are, but there is simply an implementation hurdle.

Show 6 quoted lines
> I think for send-email you would typically use your mua's alias file.
> 
> For git commit --author abbreviations at least I would typically need
> only very few entries (be it per repo or globally), which means they can
> be much shorter (than my mua aliases) in order to be unique, and I don't
> really want an extra file for that.

I think this depends on your situation. In your case, it sounds like you want to configure a few names that frequently have --author fields for your specific workflow. For me, even though only 1% of the people in my mua's alias file might send me patches, 99% of the people I would want to use --author on are in my mua's alias file.

So while there are may only be a few needed entries, they are already there for me. Of course, I don't really use --author much, since most people I talk to are already git users. ;) So I am extrapolating a bit.

Show 5 quoted lines
> >> The "--committer" argument to git commit is not treated because I
> >> don't consider it worthwhile.
> 
> I managed to fool everyone, including myself. There is no --committer
> option. I feel in good company now ;)
Heh.
> There is GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL, and likewise for
> author. My patch does not use any of these, it only deals with (the)
> option argument(s). Explicitely set *_{NAME,EMAIL} should be respected
> as is.
I think that is sensible.
Show 15 quoted lines
> > I haven't traced all of the uses of author_name and author_email, but
> >  all of the other codepaths seem to allocate a new string, whereas
> 
> ..because they need to make a local (for the function) string global
> (for the file)...
> 
> > this uses the existing strings.
> 
> ...because they are (file) global already.
> 
> > Is this going to accidentally free()
> > from the users list, or are we just leaking those other strings now?
> 
> Same as branches in remote.c, see below. They're not freed accidentally
> in builtin-commit.c

OK, I see. I wonder if it is worth xstrdup'ing them _anyway_, so that determine_author_info produces a consistent result, and the person who later does the free() cleanup won't get a nasty surprise. But the leakage is probably not enough to really care about in this instance.

> I was looking all over the existing code for a function which would do
> what "git config --get $key" does, and didn't find any. I ended up
> copying the logic (and code) from remote.c's parsing of "branch.*.*".
> [Should I have attributed this somehow? ]
No, no need to attribute in this case, I think.

I think the way you have done the config is fine, unless somebody else has a major style objection (and yes, there are examples of similar styles).

-Peff
Previous: Michael J GruberNext: Junio C Hamano
Message 9 of 32 in “allow user aliases for the --author parameter”
  1. allow user aliases for the --author parameterMichael J Gruber, Aug 21, 2008
  2. Miklos VajnaAug 21, 2008
  3. Michael J GruberAug 21, 2008
  4. Alex RiesenAug 21, 2008
  5. Alex RiesenAug 21, 2008
  6. Jeff KingAug 21, 2008
  7. Junio C HamanoAug 22, 2008
  8. Michael J GruberAug 22, 2008
  9. Jeff KingAug 22, 2008
  10. Junio C HamanoAug 22, 2008
  11. Jeff KingAug 22, 2008
  12. allow user aliases for the --author parameterMichael J Gruber, Aug 26, 2008
  13. Junio C HamanoAug 26, 2008
  14. Jeff KingAug 27, 2008
  15. Junio C HamanoAug 27, 2008
  16. Michael J GruberAug 27, 2008
  17. Jeff KingAug 27, 2008
  18. Jeff KingAug 27, 2008
  19. Junio C HamanoAug 27, 2008
  20. Pedro MeloAug 24, 2008
  21. Jeff KingAug 24, 2008
  22. fix "git log -i --grep"Jeff King, Aug 25, 2008
  23. format-patch: use default diff format even with patch optionsJeff King, Aug 25, 2008
  24. Junio C HamanoAug 25, 2008
  25. Junio C HamanoAug 25, 2008
  26. Jeff KingAug 25, 2008
  27. Jeff KingAug 25, 2008
  28. Junio C HamanoAug 25, 2008
  29. Jeff KingAug 27, 2008
  30. Michael J GruberAug 28, 2008
  31. Jeff KingAug 28, 2008
  32. Jeff KingAug 28, 2008

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.