Junio C Hamano <gitster@xxxxxxxxx> writes: > Another line of thought is perhaps it is potentially useful to teach > the --format= machinery to be a bit more programmable, e.g. allowing > to compute a substring of an existing field %{%aE#*@} without having > to waste a letter each for the local part and domain part. But as I > already said, we are now talking about "postprocessing", and adding > complexity to our codebase only to have incomplete flexibility may > not be worth it. A more specific %(authoremail:localpart) and its > domain counterpart may be easier to explain and understand. > > In any case, it is a bit too late to say "let's not waste the > precious single letter namespace to add useless features", as we > have come way too far, so I do not mind too much using a currently > unused letter $X for yet another author and committer trait. When I wrote the above, I somehow forgot the existing work in the ref-filter (aka "for-each-ref") placeholders, where we have support to a lot more flexible way to customize these things. For example, "%(authoremail:mailmap,localpart)" can be used to say, instead of wasting two letters 'l' and 'L' out of precious 52, that we want e-mail address honoring the mailmap, and take only the local part. And the support for the host part of the address that this topic discussed should be implementable fairly easily (just adding EO_HOSTPART bit to the email_option structure would be sufficient) on the ref-filter side. We saw efforts from time to time to give "log --pretty=format:" more of the good things from the "for-each-ref --format=" placeholders (and vice versa), and it may give us a good way forward.