On 10/22/19 7:48 PM, brian m. carlson wrote:
> On 2019-10-22 at 23:28:47, Prarit Bhargava wrote:
>> In many projects the number of contributors is low enough that users know
>> each other and the full email address doesn't need to be displayed.
>> Displaying only the author's username saves a lot of columns on the screen.
>> For example displaying "prarit" instead of "pra...@redhat.com" saves 11
>> columns.
>>
>> Add a "%aU"|"%au" option that outputs the author's email username.
>
> I have no position on whether or not this is a useful change. I don't
> think I'll end up using it, but I can imagine cases where it is useful,
> such as certain corporate environments. It would be interesting to see
> what others think.
>
>> diff --git a/Documentation/pretty-formats.txt
>> b/Documentation/pretty-formats.txt
>> index b87e2e83e6d0..479a15a8ab12 100644
>> --- a/Documentation/pretty-formats.txt
>> +++ b/Documentation/pretty-formats.txt
>> @@ -163,6 +163,9 @@ The placeholders are:
>> '%ae':: author email
>> '%aE':: author email (respecting .mailmap, see linkgit:git-shortlog[1]
>> or linkgit:git-blame[1])
>> +'%au':: author username
>> +'%aU':: author username (respecting .mailmap, see linkgit:git-shortlog[1]
>> + or linkgit:git-blame[1])
>
> I think we need to actually document what "username" means here. I
> expect you'll have people think that this magically means their
> $HOSTING_PLATFORM username, which it is not.
>
Based on Junio's input, I'm going to change the option to "al" and "aL" where L
means "local-part" as defined by the rfc2822.txt specification, and include a
comment that says "(the portion of the email address preceding the '@' symbol)".
Admittedly that doesn't convey the meaning of the mailbox concept of the email
address it does tell a user what is going to be output.
>> diff --git a/pretty.c b/pretty.c
>> index b32f0369531c..2a5b93022050 100644
>> --- a/pretty.c
>> +++ b/pretty.c
>> @@ -706,6 +706,11 @@ static size_t format_person_part(struct strbuf *sb,
>> char part,
>> strbuf_add(sb, mail, maillen);
>> return placeholder_len;
>> }
>> + if (part == 'u' || part == 'U') { /* username */
>> + maillen = strstr(s.mail_begin, "@") - s.mail_begin;
>> + strbuf_add(sb, mail, maillen);
>> + return placeholder_len;
>> + }
>
> This branch doesn't appear to do anything different for the mailmap and
> non-mailmap cases. Perhaps adding an additional test that demonstrates
> the difference would be a good idea.
>
Thanks for the suggestion. I'll look into it for v2.
P.