On Thu, Mar 23, 2017 at 4:03 AM, Dennis Kaarsemaker <dennis@xxxxxxxxxxxxxxx> wrote: > On Wed, 2017-03-22 at 18:32 -0600, Edmundo Carmona Antoranz wrote: >> >> $ git blame --no-progress -w --line-porcelain -L 72,72 >> author-mail <somemail@xxxxxxxxx> >> >> $ git cat-file -p 3290fe6dd2a7e2bb35ac760443335dec58802ff1 >> author Stefan Beller <somemail@xxxxxxxxxx> 1484160452 -0800 >> >> Committer mails are matching, however author mail does not match >> between line-porcelain and cat-file. Is there a reason for that? > > The commit object has Stefan's Google address, but git.git's mailmap > maps that to his gmail address. > > git blame actually does this mapping, where git cat-file does not. Yes, I think the plumbing tools in general want to ignore the .mailmap file. The committer (Junio) does use the email address, which is recorded as his primary address in .mailmap as well, so no matter if the .mailmap file is taken into account, it is the same email address. Currently I contribute patches via the @google address, but the @gmail address is marked as the primary address in the .mailmap file, such that it depends whether the .mailmap file is taken into account which email address is displayed. So doesn't depend on the author or committer fields, but instead it depends on the underlying data (.mailmap and recorded person for author/committer). For the exact mechanism of .mailmap look at "man git shortlog" that has a section MAPPING AUTHORS), which states its effect, but not the purpose of mapping persons: The .mailmap feature is used to coalesce together commits by the same person in the shortlog, where their name and/or email address was spelled differently. One purpose could be to just fix data (i.e. misspelled name, unconfigured repo; back then there were quite a few name="" email="root@localhost" commits). Another aspect is to keep track of the same person at different stages of life, e.g. when switching employers (or just email providers), you may contribute from different email addresses and want to appear as the same person in porcelain-viewed commits. There are quite a few examples in the .mailmap file for different email addresses. One notable example is found in 94b410bba8 (.mailmap: Map email addresses to names, 2013-07-12): While the most changes happen at the email addresses, we also have a name change in here. Karl Hasselström is now known as Karl Wiberg due to marriage. Congratulations! Thanks, Stefan