* blame --line-porcelain is providing me with funny output @ 2017-03-23 0:32 Edmundo Carmona Antoranz 2017-03-23 11:03 ` Dennis Kaarsemaker 0 siblings, 1 reply; 3+ messages in thread From: Edmundo Carmona Antoranz @ 2017-03-23 0:32 UTC (permalink / raw) To: Git List Hi, everybody! As part of my improvements to difflame I want to use revision information as provided by blame --line-porcelain so that I can avoid some git calls to cat-file -p to get revision information hoping that information would be a match. However I'm not finding that to be the case. $ git blame --no-progress -w --line-porcelain -L 72,72 4e59582ff70d299f5a88449891e78d15b4b3fabe -- t/lib-submodule-update.sh 3290fe6dd2a7e2bb35ac760443335dec58802ff1 72 72 1 author Stefan Beller author-mail <somemail@gmail.com> author-time 1484160452 author-tz -0800 committer Junio C Hamano committer-mail <somemail@pobox.com> committer-time 1484337771 committer-tz -0800 summary lib-submodule-update.sh: reduce use of subshell by using "git -C" previous d7dffce1cebde29a0c4b309a79e4345450bf352a t/lib-submodule-update.sh filename t/lib-submodule-update.sh git -C sub1 checkout modifications && If we then take a look at the information on that revision using cat-file -p on the revision: $ git cat-file -p 3290fe6dd2a7e2bb35ac760443335dec58802ff1 tree 7df89dad28ec8b08875395265a3f2e13ba180174 parent d7dffce1cebde29a0c4b309a79e4345450bf352a author Stefan Beller <somemail@google.com> 1484160452 -0800 committer Junio C Hamano <somemail@pobox.com> 1484337771 -0800 (which, just in case, resembles the information provided by git show... but is simpler to parse with cat-file). Committer mails are matching, however author mail does not match between line-porcelain and cat-file. Is there a reason for that? Thanks in advance. ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: blame --line-porcelain is providing me with funny output 2017-03-23 0:32 blame --line-porcelain is providing me with funny output Edmundo Carmona Antoranz @ 2017-03-23 11:03 ` Dennis Kaarsemaker 2017-03-23 18:01 ` Stefan Beller 0 siblings, 1 reply; 3+ messages in thread From: Dennis Kaarsemaker @ 2017-03-23 11:03 UTC (permalink / raw) To: Edmundo Carmona Antoranz, Git List 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@gmail.com> > > $ git cat-file -p 3290fe6dd2a7e2bb35ac760443335dec58802ff1 > author Stefan Beller <somemail@google.com> 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. -- Dennis Kaarsemaker http://www.kaarsemaker.net ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: blame --line-porcelain is providing me with funny output 2017-03-23 11:03 ` Dennis Kaarsemaker @ 2017-03-23 18:01 ` Stefan Beller 0 siblings, 0 replies; 3+ messages in thread From: Stefan Beller @ 2017-03-23 18:01 UTC (permalink / raw) To: Dennis Kaarsemaker; +Cc: Edmundo Carmona Antoranz, Git List On Thu, Mar 23, 2017 at 4:03 AM, Dennis Kaarsemaker <dennis@kaarsemaker.net> 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@gmail.com> >> >> $ git cat-file -p 3290fe6dd2a7e2bb35ac760443335dec58802ff1 >> author Stefan Beller <somemail@google.com> 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 ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-03-23 18:01 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-03-23 0:32 blame --line-porcelain is providing me with funny output Edmundo Carmona Antoranz 2017-03-23 11:03 ` Dennis Kaarsemaker 2017-03-23 18:01 ` Stefan Beller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).