From mboxrd@z Thu Jan 1 00:00:00 1970 From: smithj4 at bnl.gov (Jason A. Smith) Date: Thu, 25 Aug 2016 15:22:35 -0400 Subject: [PATCH] Add support for git's mailmap. In-Reply-To: <20160824223030.msh3y7woqiml5api@john.keeping.me.uk> References: <20160824192329.wbiroty26davnidh@john.keeping.me.uk> <20160824223030.msh3y7woqiml5api@john.keeping.me.uk> Message-ID: On 08/24/2016 06:30 PM, John Keeping wrote: > On Wed, Aug 24, 2016 at 05:27:31PM -0400, Jason A. Smith wrote: >> Are you proposing to remove the angle brackets around the email address >> everywhere in cgit strings, to match git, which I think is done in the >> parse_user function? Then use git's map_user directly and create a >> cgit_print_ident function that inserts the angle brackets when printed? >> Then also making local copies of the pointers so freeing the info >> structure doesn't break the mailmap? I think this would be a much larger >> change beyond just supporting the mailmap. > > Yes, pretty much exactly this. There's only a small number of sites > that actually use author_email and committer_email, most of which are > already printing something, so the fallout shouldn't be too bad. > > The only other cases are opening the email filter, which is why I > suggested wrapping at least part of that process in a new function. So how do you propose splitting the patches to accomplish this? One patch to add mailmap support and another patch to modify how angle brackets are handled in the email addresses? Which patch goes first and who will fix the angle brackets? Are you volunteering? ;) I haven't done much C programming in years and wasn't familiar with neither the git nor cgit code, so it took me a little while to figure out how to add mailmap support to cgit. I did it because we recently added mailmap files to our local git repos to clean things up and I noticed that cgit wasn't using them. I just looked at the filter code a little and it looks a bit complicated to my novice eyes. I'm not sure how to patch it to just modify only email addresses passed into it. Another option might be to just just use another char string to wrap the email address in angle brackets before opening the filter in the caller and pass that instead? ~Jason