{"thread":{"id":"56479","subject":"[PATCH] .mailmap: Update mailmap","startedAt":"2021-09-10T13:02:54Z","lastAt":"2021-09-13T04:09:59Z","messageCount":13,"participants":["Fangyi Zhou","Gwyneth Morgan","Jeff King","Sibi Siddharthan","Ævar Arnfjörð Bjarmason","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"435407","messageId":"20210910130236.40101-1-me@fangyi.io","threadId":"56479","inReplyTo":null,"subject":"[PATCH] .mailmap: Update mailmap","fromName":"Fangyi Zhou","fromEmail":"me@fangyi.io","sentAt":"2021-09-10T13:02:36Z","receivedAt":"2021-09-10T13:02:54Z","isPatch":true,"sender":{"key":"me@fangyi.io","avatar":"https://avatars.githubusercontent.com/u/7815439?v=4"},"body":"Similar to a35b13fce0 (Update .mailmap, 2018-11-09).\n\nThis patch makes the output of `git shortlog -nse v2.10.0..master`\nduplicate-free by taking/guessing the current and preferred\naddresses for authors that appear with more than one address.\n\nUpdated from <20200805065408.1242617-1-martin.agren@gmail.com>,\ntaking into consideration of <xmqqsgcm4ij5.fsf@gitster.c.googlers.com>,\nand other replies.\n\nUse the by far most common e-mail address:\n * Brandon Williams\n * Jiang Xin\n\nUse the most recent e-mail address:\n * Birger Skogeng Pedersen\n * Christopher Díaz Riveros\n * Ed Maste\n * Fangyi Zhou\n * Jean-Noël Avila\n * Kevin Willford\n * Peter Kaestle\n\nUse the one from their \"Signed-off-by\":\n * Damien Robert\n * Kazuhiro Kato\n * Sibi Siddharthan\n\nUse the most recent name / name with correct accents:\n * CB Bailey\n * Christopher Díaz Riveros\n * Jessica Clarke\n * Slavica Đukić\n\nDo not merge:\n * Andreas Schwab\n\nSigned-off-by: Fangyi Zhou <me@fangyi.io>\n\n---\nPlease let me know if you approve those changes or not.\nIf no reply is received, the entry will be added in comments.\n\n---\n .mailmap | 23 +++++++++++++++++++++--\n 1 file changed, 21 insertions(+), 2 deletions(-)\n\ndiff --git a/.mailmap b/.mailmap\nindex 9c6a446bdf..ff0887d9e0 100644\n--- a/.mailmap\n+++ b/.mailmap\n@@ -27,13 +27,16 @@ Ben Peart <benpeart@microsoft.com> <peartben@gmail.com>\n Ben Walton <bdwalton@gmail.com> <bwalton@artsci.utoronto.ca>\n Benoit Sigoure <tsunanet@gmail.com> <tsuna@lrde.epita.fr>\n Bernt Hansen <bernt@norang.ca> <bernt@alumni.uwaterloo.ca>\n+Birger Skogeng Pedersen <birger.sp@gmail.com> <birgersp@gmail.com>\n Brandon Casey <drafnel@gmail.com> <casey@nrlssc.navy.mil>\n Brandon Williams <bwilliams.eng@gmail.com> <bmwill@google.com>\n+Brandon Williams <bwilliamseng@gmail.com> <bmwill@google.com>\n brian m. carlson <sandals@crustytoothpaste.net>\n brian m. carlson <sandals@crustytoothpaste.net> <sandals@crustytoothpaste.ath.cx>\n brian m. carlson <sandals@crustytoothpaste.net> <bk2204@github.com>\n Bryan Larsen <bryan@larsen.st> <bryan.larsen@gmail.com>\n Bryan Larsen <bryan@larsen.st> <bryanlarsen@yahoo.com>\n+CB Bailey <cbailey32@bloomberg.net> Charles Bailey\n Cheng Renquan <crquan@gmail.com>\n Chris Shoemaker <c.shoemaker@cox.net>\n Chris Wright <chrisw@sous-sol.org> <chrisw@osdl.org>\n@@ -41,10 +44,12 @@ Christian Ludwig <chrissicool@gmail.com> <chrissicool@googlemail.com>\n Cord Seele <cowose@gmail.com> <cowose@googlemail.com>\n Christian Couder <chriscool@tuxfamily.org> <christian.couder@gmail.com>\n Christian Stimming <stimming@tuhh.de> <chs@ckiste.goetheallee>\n-Christopher Díaz Riveros <chrisadr@gentoo.org> Christopher Diaz Riveros\n+Christopher Díaz Riveros <christopher.diaz.riv@gmail.com> <chrisadr@gentoo.org>\n+Christopher Díaz Riveros <christopher.diaz.riv@gmail.com> Christopher Diaz Riveros\n Clemens Buchacher <drizzd@gmx.net> <drizzd@aon.at>\n Clemens Buchacher <drizzd@gmx.net> <clemens.buchacher@intel.com>\n Csaba Henk <csaba@gluster.com> <csaba@lowlife.hu>\n+Damien Robert <damien.olivier.robert+git@gmail.com> <damien.olivier.robert@gmail.com>\n Dan Johnson <computerdruid@gmail.com>\n Dana L. How <danahow@gmail.com> <how@deathvalley.cswitch.com>\n Dana L. How <danahow@gmail.com> Dana How\n@@ -64,13 +69,15 @@ Derrick Stolee <dstolee@microsoft.com> Derrick Stolee via GitGitGadget <gitgitga\n Deskin Miller <deskinm@umich.edu>\n Đoàn Trần Công Danh <congdanhqx@gmail.com> Doan Tran Cong Danh\n Dirk Süsserott <newsletter@dirk.my1.cc>\n+Ed Maste <emaste@FreeBSD.org> <emaste@freebsd.org>\n Eric Blake <eblake@redhat.com> <ebb9@byu.net>\n Eric Hanchrow <eric.hanchrow@gmail.com> <offby1@blarg.net>\n Eric S. Raymond <esr@thyrsus.com>\n Eric Wong <e@80x24.org> <normalperson@yhbt.net>\n Erik Faye-Lund <kusmabite@gmail.com> <kusmabite@googlemail.com>\n Eyvind Bernhardsen <eyvind.bernhardsen@gmail.com> <eyvind-git@orakel.ntnu.no>\n-Fangyi Zhou <fangyi.zhou@yuriko.moe> Zhou Fangyi\n+Fangyi Zhou <me@fangyi.io> <fangyi.zhou@yuriko.moe>\n+Fangyi Zhou <me@fangyi.io> Zhou Fangyi <fangyi.zhou@yuriko.moe>\n Florian Achleitner <florian.achleitner.2.6.31@gmail.com> <florian.achleitner2.6.31@gmail.com>\n Franck Bui-Huu <vagabon.xyz@gmail.com> <fbuihuu@gmail.com>\n Frank Lichtenheld <frank@lichtenheld.de> <djpig@debian.org>\n@@ -102,11 +109,14 @@ Jason Riedy <ejr@eecs.berkeley.edu> <ejr@cs.berkeley.edu>\n Jay Soffian <jaysoffian@gmail.com> <jaysoffian+git@gmail.com>\n Jean-Noël Avila <jn.avila@free.fr> Jean-Noel Avila\n Jean-Noël Avila <jn.avila@free.fr> Jean-Noël AVILA\n+Jean-Noël Avila <jn.avila@free.fr> Jean-Noel Avila <jean-noel.avila@scantech.fr>\n Jeff King <peff@peff.net> <peff@github.com>\n Jeff Muizelaar <jmuizelaar@mozilla.com> <jeff@infidigm.net>\n Jens Axboe <axboe@kernel.dk> <axboe@suse.de>\n Jens Axboe <axboe@kernel.dk> <jens.axboe@oracle.com>\n Jens Lindström <jl@opera.com> Jens Lindstrom <jl@opera.com>\n+Jessica Clarke <jrtc27@jrtc27.com> James Clarke\n+Jiang Xin <worldhello.net@gmail.com> <zhiyou.jx@alibaba-inc.com>\n Jim Meyering <jim@meyering.net> <meyering@redhat.com>\n Joachim Berdal Haga <cjhaga@fys.uio.no>\n Joachim Jablon <joachim.jablon@people-doc.com> <ewjoachim@gmail.com>\n@@ -138,10 +148,12 @@ Karsten Blees <blees@dcon.de> <karsten.blees@dcon.de>\n Karsten Blees <blees@dcon.de> <karsten.blees@gmail.com>\n Kay Sievers <kay.sievers@vrfy.org> <kay.sievers@suse.de>\n Kay Sievers <kay.sievers@vrfy.org> <kay@mam.(none)>\n+Kazuhiro Kato <kato-k@ksysllc.co.jp> <kazuhiro.kato@hotmail.co.jp>\n Kazuki Saitoh <ksaitoh560@gmail.com> kazuki saitoh <ksaitoh560@gmail.com>\n Keith Cascio <keith@CS.UCLA.EDU> <keith@cs.ucla.edu>\n Kent Engstrom <kent@lysator.liu.se>\n Kevin Leung <kevinlsk@gmail.com>\n+Kevin Willford <Kevin.Willford@microsoft.com> <kewillf@microsoft.com>\n Kirill Smelkov <kirr@navytux.spb.ru> <kirr@landau.phys.spbu.ru>\n Kirill Smelkov <kirr@navytux.spb.ru> <kirr@mns.spb.ru>\n Knut Franke <Knut.Franke@gmx.de> <k.franke@science-computing.de>\n@@ -211,6 +223,7 @@ Peter Baumann <waste.manager@gmx.de> <Peter.B.Baumann@stud.informatik.uni-erlang\n Peter Baumann <waste.manager@gmx.de> <siprbaum@stud.informatik.uni-erlangen.de>\n Peter Krefting <peter@softwolves.pp.se> <peter@softwolves.pp.se>\n Peter Krefting <peter@softwolves.pp.se> <peter@svarten.intern.softwolves.pp.se>\n+Peter Kaestle <peter@piie.net> <peter.kaestle@nokia.com>\n Petr Baudis <pasky@ucw.cz> <pasky@suse.cz>\n Petr Baudis <pasky@ucw.cz> <xpasky@machine>\n Phil Hord <hordp@cisco.com> <phil.hord@gmail.com>\n@@ -242,9 +255,11 @@ Sebastian Schuberth <sschuberth@gmail.com> <sschuberth@visageimaging.com>\n Seth Falcon <seth@userprimary.net> <sfalcon@fhcrc.org>\n Shawn O. Pearce <spearce@spearce.org>\n Wei Shuyu <wsy@dogben.com> Shuyu Wei\n+Sibi Siddharthan <sibisiddharthan.github@gmail.com> <sibisiv.siddharthan@gmail.com>\n Sidhant Sharma <tigerkid001@gmail.com> Sidhant Sharma [:tk]\n Simon Hausmann <hausmann@kde.org> <simon@lst.de>\n Simon Hausmann <hausmann@kde.org> <shausman@trolltech.com>\n+Slavica Đukić <slawica92@hotmail.com> Slavica Djukic <slavicadj.ip2018@gmail.com>\n Stefan Beller <stefanbeller@gmail.com> <stefanbeller@googlemail.com>\n Stefan Beller <stefanbeller@gmail.com> <sbeller@google.com>\n Stefan Naewe <stefan.naewe@gmail.com> <stefan.naewe@atlas-elektronik.com>\n@@ -296,3 +311,7 @@ Yi-Jyun Pan <pan93412@gmail.com>\n anonymous <linux@horizon.com>\n anonymous <linux@horizon.net>\n İsmail Dönmez <ismail@pardus.org.tr>\n+\n+# Do not merge\n+# Andreas Schwab <schwab@linux-m68k.org>\n+# Andreas Schwab <schwab@suse.de>\n-- \n2.32.0\n\n"},{"id":"435428","messageId":"YTt4RymWg+TOEmUf@tilde.club","threadId":"56479","inReplyTo":"20210910130236.40101-1-me@fangyi.io","subject":"Re: [PATCH] .mailmap: Update mailmap","fromName":"Gwyneth Morgan","fromEmail":"gwymor@tilde.club","sentAt":"2021-09-10T15:22:47Z","receivedAt":"2021-09-10T15:23:24Z","isPatch":true,"sender":{"key":"gwymor@tilde.club","avatar":"https://avatars.githubusercontent.com/u/87623694?v=4"},"body":"On 2021-09-10 14:02:36+0100, Fangyi Zhou wrote:\n> Similar to a35b13fce0 (Update .mailmap, 2018-11-09).\n> \n> This patch makes the output of `git shortlog -nse v2.10.0..master`\n> duplicate-free by taking/guessing the current and preferred\n> addresses for authors that appear with more than one address.\n\nThe line for Jessica Clarke should probably just be\n\nJessica Clarke <jrtc27@jrtc27.com>\n\nThat works the same and doesn't put a reference to an old name.\n"},{"id":"435431","messageId":"YTt6RTwJw64tYJRw@coredump.intra.peff.net","threadId":"56479","inReplyTo":"YTt4RymWg+TOEmUf@tilde.club","subject":"Re: [PATCH] .mailmap: Update mailmap","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2021-09-10T15:31:17Z","receivedAt":"2021-09-10T15:31:21Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Sep 10, 2021 at 03:22:47PM +0000, Gwyneth Morgan wrote:\n\n> On 2021-09-10 14:02:36+0100, Fangyi Zhou wrote:\n> > Similar to a35b13fce0 (Update .mailmap, 2018-11-09).\n> > \n> > This patch makes the output of `git shortlog -nse v2.10.0..master`\n> > duplicate-free by taking/guessing the current and preferred\n> > addresses for authors that appear with more than one address.\n> \n> The line for Jessica Clarke should probably just be\n> \n> Jessica Clarke <jrtc27@jrtc27.com>\n> \n> That works the same and doesn't put a reference to an old name.\n\nThanks, that's a good suggestion. I kind of wonder if these mass\nmailmap-cleanup patches are a good idea in general. They are making\nassumptions about how people want their names to be represented, and\nwhether and how they want any mappings to appear. Maybe that's something\nwe should be leaving to people to propose for their own identities.\n\nOf course people who aren't active in the project anymore may not bother\nto do the cleanup, and of course messy data makes me sad. But on the\nwhole, I'm not sure it's that big a deal either way.\n\n-Peff\n"},{"id":"435432","messageId":"CAKw82xwnQLT-u4xnQZOiuM33=hC298dNt0eMna-KiMkq25fSow@mail.gmail.com","threadId":"56479","inReplyTo":"YTt6RTwJw64tYJRw@coredump.intra.peff.net","subject":"Re: [PATCH] .mailmap: Update mailmap","fromName":"Sibi Siddharthan","fromEmail":"sibisiv.siddharthan@gmail.com","sentAt":"2021-09-10T15:35:44Z","receivedAt":"2021-09-10T15:35:58Z","isPatch":true,"sender":{"key":"sibisiv.siddharthan@gmail.com","avatar":null},"body":"Hey there,\n\nPlease change the line 'Sibi Siddharthan\n<sibisiddharthan.github@gmail.com> <sibisiv.siddharthan@gmail.com>'\nto\n'Sibi Siddharthan <sibisiddharthan.github@gmail.com>'.\nThe other one is my personal email.\n\nThank You,\nSibi Siddharthan\n"},{"id":"435449","messageId":"877dfocps2.fsf@evledraar.gmail.com","threadId":"56479","inReplyTo":"YTt4RymWg+TOEmUf@tilde.club","subject":"Oddidies in the .mailmap parser & future syntax extensions","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-09-10T16:48:26Z","receivedAt":"2021-09-10T17:19:16Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\n[Changed subject]\n\nOn Fri, Sep 10 2021, Gwyneth Morgan wrote:\n\n> On 2021-09-10 14:02:36+0100, Fangyi Zhou wrote:\n>> Similar to a35b13fce0 (Update .mailmap, 2018-11-09).\n>> \n>> This patch makes the output of `git shortlog -nse v2.10.0..master`\n>> duplicate-free by taking/guessing the current and preferred\n>> addresses for authors that appear with more than one address.\n>\n> The line for Jessica Clarke should probably just be\n>\n> Jessica Clarke <jrtc27@jrtc27.com>\n>\n> That works the same and doesn't put a reference to an old name.\n\nIt does work exactly the same!\n\nMore specifically this is an unintentional bug/misfeature/looseness in\nthe .mailmap parser, an entry like:\n\n    Foo <foo@example.com> Bar\n\nIs exactly equivalent to:\n\n    Foo <foo@example.com>\n\nI.e. we simply ignore the \" Bar\" part. The reason for this is that we're\ninternally treating nonsense input as if the line simply ended there.\n\nEven having documented and tested some of this recently in 05b5ff219c2\n(mailmap doc + tests: add better examples & test them, 2021-01-12) I\nfound this a bit surprising. I probably found out at the time, but\nforgot and had to go source spelunking again.\n\nI'd expect:\n\n    Foo <foo@example.com> Bar\n\nTo be an alias/shorthand for:\n\n    Foo <foo@example.com> Bar <foo@example.com>\n\nWhich is something that might be applicable / useful in some\ncases.\n\nE.g. a name might change over time from \"Foo\", to \"Bar\", to \"Zar\", but\njust because we're at \"Bar\" and want to map \"Foo\" to \"Bar\", that might\nnot mean that we'd like to map any future name at the same address\n(i.e. the future \"Zar\") to the same \"Foo\".\n\nIn practice I suspect that's more commonly what people do want to do,\nmaybe we should warn about it, I did mean to hook some pedantic mode of\nthe parser at some point up to git-fsck.\n\nMore annoying is that this:\n\n    New <foo@example.com> <bar@example.com>\n    <foo@example.com> <zar@example.com>\n\nDoesn't mean the same as:\n\n    New <foo@example.com> <bar@example.com>\n    New <foo@example.com> <zar@example.com>\n\nI.e. I'd expect the name to map to the empty string, *unless* we saw an\nearlier address, i.e. just as we do for the first bar -> foo line (we\nmap it to a name of \"New\", we don't map it to an empty name).\n\nSo that's some #leftoverbits, perhaps someone somewhere relies on that,\nbut it seems like an obvious shorthand to have. I can't imagine it being\nuseful to map to empty names, and much of e.g. git.git's mailmap is\nrepeated entries with the same name over and over again.\n\nI suppose we could also extend it to new syntax such as:\n\n    New <foo@example.com> <bar@example.com> <zar@example.com>\n\nDoing that would be strictly backwards compatible, i.e. now we'll\nentirely ignore the 3rd E-Mail address. It does mean we also\naccidentally support things like:\n\n    New <foo@example.com> <bar@example.com> # A comment, because we ignore everything after the 2nd address\n\nBut don't tell anyone I told you that :) But that is something that\nmight technically have inadvertently closed the door to future syntax\nextensions, but we could probably do them anyway, or at worst have some\nheuristic.\n\nAnother useful thing might be to support:\n\n    New <> Old <>\n\nAs an explicit mapping of the name \"Old\" wherever we see it to \"New\", or:\n\n    New <> Old <>\n\nTo change just the name \"Old\" to \"New\" everywhere, without considering\nthe E-Mail address. Both of those are probably too crazy to be useful,\nespecially since if we supported that we'd logically also support:\n\n    New <> <>\n\nTo assign all the commits to the name \"New\", but retain the address.\n"},{"id":"435455","messageId":"xmqq1r5wti5a.fsf@gitster.g","threadId":"56479","inReplyTo":"877dfocps2.fsf@evledraar.gmail.com","subject":"Re: Oddidies in the .mailmap parser & future syntax extensions","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-09-10T18:11:45Z","receivedAt":"2021-09-10T18:12:07Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n\n> [Changed subject]\n\n[jc: culled CC addresses]\n\n> I'd expect:\n>\n>     Foo <foo@example.com> Bar\n>\n> To be an alias/shorthand for:\n>\n>     Foo <foo@example.com> Bar <foo@example.com>\n\nOK.\n\n> More annoying is that this:\n>\n>     New <foo@example.com> <bar@example.com>\n>     <foo@example.com> <zar@example.com>\n>\n> Doesn't mean the same as:\n> ...\n> I.e. I'd expect the name to map to the empty string, *unless* we saw an\n> earlier address, i.e. just as we do for the first bar -> foo line (we\n> map it to a name of \"New\", we don't map it to an empty name).\n\nYou expect the first one to map (anyname, <bar@example.com>) to\n(\"New\", <foo@example.com>) and you describe the second one does not\nmap the human-readable part to \"New\", but it is unclear what the\ncode does, or why you expect it to map to \"\" (or what your\nexpectation is, for that matter, exactly---do you want an empty\nstring, or do you want \"New\", or something else???).\n\nFWIW, if we were designing it from scratch, I'd expect the second\none to map (anyname, <zar@example.com>) to ($1, <foo@example.com>),\nkeeping the human-readable part as-is and only map the e-mail part.\n\nOr do you expect that when these two entries appear together, the\nfirst entry with \"New\" is carried over to the second entry?\n\n> Doing that would be strictly backwards compatible, i.e. now we'll\n> entirely ignore the 3rd E-Mail address. It does mean we also\n> accidentally support things like:\n>\n>     New <foo@example.com> <bar@example.com> # A comment, because we ignore everything after the 2nd address\n>\n> But don't tell anyone I told you that :) But that is something that\n> might technically have inadvertently closed the door to future syntax\n> extensions, but we could probably do them anyway, or at worst have some\n> heuristic.\n\nI vaguely recall that it was not an accident but a deliberate\nfeature to allow comments, but don't tell anyone I told you that.\n\n"},{"id":"435465","messageId":"87h7esb3ig.fsf@evledraar.gmail.com","threadId":"56479","inReplyTo":"xmqq1r5wti5a.fsf@gitster.g","subject":"Re: Oddidies in the .mailmap parser & future syntax extensions","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-09-10T19:50:28Z","receivedAt":"2021-09-10T20:05:16Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Fri, Sep 10 2021, Junio C Hamano wrote:\n\n> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n>\n>> [Changed subject]\n>\n> [jc: culled CC addresses]\n>\n>> I'd expect:\n>>\n>>     Foo <foo@example.com> Bar\n>>\n>> To be an alias/shorthand for:\n>>\n>>     Foo <foo@example.com> Bar <foo@example.com>\n>\n> OK.\n>\n>> More annoying is that this:\n>>\n>>     New <foo@example.com> <bar@example.com>\n>>     <foo@example.com> <zar@example.com>\n>>\n>> Doesn't mean the same as:\n>> ...\n>> I.e. I'd expect the name to map to the empty string, *unless* we saw an\n>> earlier address, i.e. just as we do for the first bar -> foo line (we\n>> map it to a name of \"New\", we don't map it to an empty name).\n>\n> You expect the first one to map (anyname, <bar@example.com>) to\n> (\"New\", <foo@example.com>) and you describe the second one does not\n> map the human-readable part to \"New\", but it is unclear what the\n> code does, or why you expect it to map to \"\" (or what your\n> expectation is, for that matter, exactly---do you want an empty\n> string, or do you want \"New\", or something else???).\n>\n> FWIW, if we were designing it from scratch, I'd expect the second\n> one to map (anyname, <zar@example.com>) to ($1, <foo@example.com>),\n> keeping the human-readable part as-is and only map the e-mail part.\n\nYes, that's what it does now. I.e. we'll create two mappings from those\nlines, namely (in line-by-line regex-like pseudosyntax):\n\n    [[(.*), bar@example.com>] => [New, foo@example.com]]\n    [[(.*), zar@example.com>] => [$1, foo@example.com]]\n\nI.e. for the second one we'll retain whatever name we found there.\n\n> Or do you expect that when these two entries appear together, the\n> first entry with \"New\" is carried over to the second entry?\n\nYes, I'd expect it to be stateful and implicitly do:\n\n    [[(.*), bar@example.com>] => [New, foo@example.com]]\n    [[(.*), zar@example.com>] => [find_last_name_for_address_in_mailmap(find_last_explicit_) || $1, foo@example.com]]\n\nI.e. we'd map the entries for you in git.git like:\n    \n    diff --git a/.mailmap b/.mailmap\n    index 9c6a446bdfb..2a884981e9d 100644\n    --- a/.mailmap\n    +++ b/.mailmap\n    @@ -127,8 +127,8 @@ Julian Phillips <julian@quantumfyre.co.uk> <jp3@quantumfyre.co.uk>\n     Junio C Hamano <gitster@pobox.com> <gitster@pobox.com>\n    -Junio C Hamano <gitster@pobox.com> <junio@hera.kernel.org>\n    -Junio C Hamano <gitster@pobox.com> <junio@kernel.org>\n    -Junio C Hamano <gitster@pobox.com> <junio@pobox.com>\n    -Junio C Hamano <gitster@pobox.com> <junio@twinsun.com>\n    -Junio C Hamano <gitster@pobox.com> <junkio@cox.net>\n    -Junio C Hamano <gitster@pobox.com> <junkio@twinsun.com>\n    +<gitster@pobox.com> <junio@hera.kernel.org>\n    +<gitster@pobox.com> <junio@kernel.org>\n    +<gitster@pobox.com> <junio@pobox.com>\n    +<gitster@pobox.com> <junio@twinsun.com>\n    +<gitster@pobox.com> <junkio@cox.net>\n    +<gitster@pobox.com> <junkio@twinsun.com>\n\nWhich are currently mostly redundant, except for one old commit under\njunio@twinsun.com where the \" C \" wasn't present in your name field.\n\nOne might say that's a feature, and you'd like to be explicit about when\nto map addresses and when to map names, i.e. if we were trying to\nminimize the size of the .mailmap then this would be the most minimal\nthing we can get away with currently:\n    \n    diff --git a/.mailmap b/.mailmap\n    index 9c6a446bdfb..4668f9b32f2 100644\n    --- a/.mailmap\n    +++ b/.mailmap\n    @@ -127,8 +127,8 @@ Julian Phillips <julian@quantumfyre.co.uk> <jp3@quantumfyre.co.uk>\n     Junio C Hamano <gitster@pobox.com> <gitster@pobox.com>\n    -Junio C Hamano <gitster@pobox.com> <junio@hera.kernel.org>\n    -Junio C Hamano <gitster@pobox.com> <junio@kernel.org>\n    -Junio C Hamano <gitster@pobox.com> <junio@pobox.com>\n    +<gitster@pobox.com> <junio@hera.kernel.org>\n    +<gitster@pobox.com> <junio@kernel.org>\n    +<gitster@pobox.com> <junio@pobox.com>\n     Junio C Hamano <gitster@pobox.com> <junio@twinsun.com>\n    -Junio C Hamano <gitster@pobox.com> <junkio@cox.net>\n    -Junio C Hamano <gitster@pobox.com> <junkio@twinsun.com>\n    +<gitster@pobox.com> <junkio@cox.net>\n    +<gitster@pobox.com> <junkio@twinsun.com>\n\nBut I just can't imagine cases where the proposed shorthand isn't useful\nfor everyone.\n\nWho wants to use mailmap, *and* map one e-mail address to another, *and*\nhas an entry explicitly mapping the name, but *would* mind having git be\nauto-smart and follow the chain of that explicit name mapping if there's\nan entry after that with an an e-mail -> that-earlier-email mapping?\n\nI think the answer is \"nobody\" and it would be unambiguously helpful,\nbut maybe I'm wrong.\n    \n>> Doing that would be strictly backwards compatible, i.e. now we'll\n>> entirely ignore the 3rd E-Mail address. It does mean we also\n>> accidentally support things like:\n>>\n>>     New <foo@example.com> <bar@example.com> # A comment, because we ignore everything after the 2nd address\n>>\n>> But don't tell anyone I told you that :) But that is something that\n>> might technically have inadvertently closed the door to future syntax\n>> extensions, but we could probably do them anyway, or at worst have some\n>> heuristic.\n>\n> I vaguely recall that it was not an accident but a deliberate\n> feature to allow comments, but don't tell anyone I told you that.\n\nWhich works, right until someone has an old name entry that looks like a\ncomment :)\n"},{"id":"435476","messageId":"xmqqk0jorxmx.fsf@gitster.g","threadId":"56479","inReplyTo":"87h7esb3ig.fsf@evledraar.gmail.com","subject":"Re: Oddidies in the .mailmap parser & future syntax extensions","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-09-10T20:20:06Z","receivedAt":"2021-09-10T20:20:10Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n\n> Who wants to use mailmap, *and* map one e-mail address to another, *and*\n> has an entry explicitly mapping the name, but *would* mind having git be\n> auto-smart and follow the chain of that explicit name mapping if there's\n> an entry after that with an an e-mail -> that-earlier-email mapping?\n\nWould it make a difference if I point out that at least for our\nproject, we want to keep the .mailmap lines be sorted?  I suspect\nthat a \"list must be mechanically sorted\" requirement may make it\nawkward to also have an \"if name is missing, use the last matching\nexplicit name\".  Also, it makes removing one entry among many for\nthe same person less straight-forward (if you are removing the one\nthat happens to be listed first, you need to move the name to the\nnext entry in order to avoid losing it).\n\n"},{"id":"435493","messageId":"xmqqa6kkosst.fsf@gitster.g","threadId":"56479","inReplyTo":"YTt6RTwJw64tYJRw@coredump.intra.peff.net","subject":"Re: [PATCH] .mailmap: Update mailmap","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-09-11T00:32:50Z","receivedAt":"2021-09-11T00:32:54Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Fri, Sep 10, 2021 at 03:22:47PM +0000, Gwyneth Morgan wrote:\n>\n>> The line for Jessica Clarke should probably just be\n>> \n>> Jessica Clarke <jrtc27@jrtc27.com>\n>> \n>> That works the same and doesn't put a reference to an old name.\n>\n> Thanks, that's a good suggestion. I kind of wonder if these mass\n> mailmap-cleanup patches are a good idea in general. They are making\n> assumptions about how people want their names to be represented, and\n> whether and how they want any mappings to appear. Maybe that's something\n> we should be leaving to people to propose for their own identities.\n>\n> Of course people who aren't active in the project anymore may not bother\n> to do the cleanup, and of course messy data makes me sad. But on the\n> whole, I'm not sure it's that big a deal either way.\n\nI am not enthused by the idea of replying to this thread, knowing\nthat many of the CC'ed addresses will bounce X-<, but I agree with\nyou on all three counts.  Even for those who are no longer active,\nit makes sense to unify multiple idents that are spelled differently\nto help \"git shortlog\", but which one to unify to is not something\nwe can decide without their input.\n\nWhich leads me to suggest something like the attached patch.  I\nwrote \"Please notify us\" for those who are no longer active and\nforgot how .mailmap entries are spelled to ask for help correcting.\n\nOf course, the updated instruction does not prevent a motivated\nvolunteer to contact the people _individually_ and then send in\na patch with entries that the volunteer secured consent, perhaps\nin the form of Acked-by ;-)\n\n\n .mailmap | 5 +++++\n 1 file changed, 5 insertions(+)\n\ndiff --git i/.mailmap w/.mailmap\nindex 9c6a446bdf..20b581c879 100644\n--- i/.mailmap\n+++ w/.mailmap\n@@ -4,6 +4,11 @@\n # and/or not always written the same way, making contributions from the\n # same person appearing not to be so.\n #\n+# If you find an incorrect entry that affects yourself, please notify us\n+# at <git@vger.kernel.org> and suggest corrections.  Because the way people\n+# want their names to be represented varies, please refrain from touching\n+# entries for other people unless you positively know that the updated\n+# entries are what they want.\n \n <nico@fluxnic.net> <nico@cam.org>\n Alejandro R. Sedeño <asedeno@MIT.EDU> <asedeno@mit.edu>\n"},{"id":"435499","messageId":"87czpfc2j6.fsf@evledraar.gmail.com","threadId":"56479","inReplyTo":"xmqqa6kkosst.fsf@gitster.g","subject":"Re: [PATCH] .mailmap: Update mailmap","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-09-11T01:31:49Z","receivedAt":"2021-09-11T01:41:06Z","isPatch":true,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Fri, Sep 10 2021, Junio C Hamano wrote:\n\n> Jeff King <peff@peff.net> writes:\n>\n>> On Fri, Sep 10, 2021 at 03:22:47PM +0000, Gwyneth Morgan wrote:\n>>\n>>> The line for Jessica Clarke should probably just be\n>>> \n>>> Jessica Clarke <jrtc27@jrtc27.com>\n>>> \n>>> That works the same and doesn't put a reference to an old name.\n>>\n>> Thanks, that's a good suggestion. I kind of wonder if these mass\n>> mailmap-cleanup patches are a good idea in general. They are making\n>> assumptions about how people want their names to be represented, and\n>> whether and how they want any mappings to appear. Maybe that's something\n>> we should be leaving to people to propose for their own identities.\n>>\n>> Of course people who aren't active in the project anymore may not bother\n>> to do the cleanup, and of course messy data makes me sad. But on the\n>> whole, I'm not sure it's that big a deal either way.\n>\n> I am not enthused by the idea of replying to this thread, knowing\n> that many of the CC'ed addresses will bounce X-<, but I agree with\n> you on all three counts.  Even for those who are no longer active,\n> it makes sense to unify multiple idents that are spelled differently\n> to help \"git shortlog\", but which one to unify to is not something\n> we can decide without their input.\n>\n> Which leads me to suggest something like the attached patch.  I\n> wrote \"Please notify us\" for those who are no longer active and\n> forgot how .mailmap entries are spelled to ask for help correcting.\n>\n> Of course, the updated instruction does not prevent a motivated\n> volunteer to contact the people _individually_ and then send in\n> a patch with entries that the volunteer secured consent, perhaps\n> in the form of Acked-by ;-)\n>\n>\n>  .mailmap | 5 +++++\n>  1 file changed, 5 insertions(+)\n>\n> diff --git i/.mailmap w/.mailmap\n> index 9c6a446bdf..20b581c879 100644\n> --- i/.mailmap\n> +++ w/.mailmap\n> @@ -4,6 +4,11 @@\n>  # and/or not always written the same way, making contributions from the\n>  # same person appearing not to be so.\n>  #\n> +# If you find an incorrect entry that affects yourself, please notify us\n> +# at <git@vger.kernel.org> and suggest corrections.  Because the way people\n> +# want their names to be represented varies, please refrain from touching\n> +# entries for other people unless you positively know that the updated\n> +# entries are what they want.\n>  \n>  <nico@fluxnic.net> <nico@cam.org>\n>  Alejandro R. Sedeño <asedeno@MIT.EDU> <asedeno@mit.edu>\n\nThat seems too high a burden for edits that are likely to be\nuncontroversial.\n\nI.e. this seems targeted at someone who's changing someone's name\nwithout their approval after the fact and when they can't be contacted.\n\nWhereas most if not all edits to this file are likely to be janitorial\nwork such as de-duplicating E-Mail addresses, or cases where the people\ninvolved even if they can't be contacted have already shared this\ninformation unambiguously with the world, it just happens to be in the\nmailing list archive, not in .mailmap.\n\nE.g. I'd think these were fine, even assuming you can't contact the\nparties involved:\n\n * The ML history reveals someone who's clearly the same person was\n   using N E-Mail addresses in succession, we should probably map it all\n   to the latest one, unclutters shortlog and the like.\n\n * Ditto even for their name in some cases. Is someone's commit history\n   200 commits of abbreviating their middle name, with 1-2 commits at\n   the start where they don't? Seems fine to just normalize that.\n\n * Is the E-Mail they last used bouncing their E-Mails (\"this person\n   doesn't work here anymore\"), domain expired etc?\n\n   It would be useful to other contributors to map that to\n   this-is-unreachable@example.org or whatever so they won't waste time\n   CC-ing a bad address.\n\nWhich doesn't mean that there aren't things we shouldn't be doing\nwithout asking:\n\n * Changing a name from Alice to Bob? Yes, ask and have the person ack\n   it.\n\n * Found the current E-Mail address someone who contributed years ago\n   but not under that address to git.git? Ask them first, they may not\n   wish to be contacted at all.\n\netc.\n"},{"id":"435555","messageId":"YTzBef1JuSCKl1tX@coredump.intra.peff.net","threadId":"56479","inReplyTo":"xmqqa6kkosst.fsf@gitster.g","subject":"Re: [PATCH] .mailmap: Update mailmap","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2021-09-11T14:47:21Z","receivedAt":"2021-09-11T14:47:24Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, Sep 10, 2021 at 05:32:50PM -0700, Junio C Hamano wrote:\n\n> Which leads me to suggest something like the attached patch.  I\n> wrote \"Please notify us\" for those who are no longer active and\n> forgot how .mailmap entries are spelled to ask for help correcting.\n\nFWIW, that seems like a quite reasonable addition to me.\n\n-Peff\n"},{"id":"435556","messageId":"YTzCuAWCJESyxIfU@coredump.intra.peff.net","threadId":"56479","inReplyTo":"87czpfc2j6.fsf@evledraar.gmail.com","subject":"Re: [PATCH] .mailmap: Update mailmap","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2021-09-11T14:52:40Z","receivedAt":"2021-09-11T14:52:44Z","isPatch":true,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"[culling cc list as earlier]\n\nOn Sat, Sep 11, 2021 at 03:31:49AM +0200, Ævar Arnfjörð Bjarmason wrote:\n\n> Whereas most if not all edits to this file are likely to be janitorial\n> work such as de-duplicating E-Mail addresses, or cases where the people\n> involved even if they can't be contacted have already shared this\n> information unambiguously with the world, it just happens to be in the\n> mailing list archive, not in .mailmap.\n> \n> E.g. I'd think these were fine, even assuming you can't contact the\n> parties involved:\n> \n>  * The ML history reveals someone who's clearly the same person was\n>    using N E-Mail addresses in succession, we should probably map it all\n>    to the latest one, unclutters shortlog and the like.\n\nJust playing devil's advocate for a moment. What about people who have\nused two different identities because they were contributing in two\ndifferent capacities (say, one from a work email, where they want to\ncontinue to credit that entity, and then later from a personal email).\n\nThat works against the goal of \"you can easily email the person from an\nold commit\". But it seems reasonable to respect their wishes there\n(e.g., they may not _want_ to deal with old contributions submitted\nas part of work).\n\nThe root of the problem is that we don't know their wishes, so we are\nmaking an assumption when a third party proposes the change.\n\n-Peff\n"},{"id":"435689","messageId":"87zgsh3ylo.fsf@evledraar.gmail.com","threadId":"56479","inReplyTo":"xmqqk0jorxmx.fsf@gitster.g","subject":"Re: Oddidies in the .mailmap parser & future syntax extensions","fromName":"Ævar Arnfjörð Bjarmason","fromEmail":"avarab@gmail.com","sentAt":"2021-09-13T04:02:09Z","receivedAt":"2021-09-13T04:09:59Z","isPatch":false,"sender":{"key":"avarab@gmail.com","avatar":"https://avatars.githubusercontent.com/u/45301?v=4"},"body":"\nOn Fri, Sep 10 2021, Junio C Hamano wrote:\n\n> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:\n>\n>> Who wants to use mailmap, *and* map one e-mail address to another, *and*\n>> has an entry explicitly mapping the name, but *would* mind having git be\n>> auto-smart and follow the chain of that explicit name mapping if there's\n>> an entry after that with an an e-mail -> that-earlier-email mapping?\n>\n> Would it make a difference if I point out that at least for our\n> project, we want to keep the .mailmap lines be sorted?\n\nI just used git.git as a handy example. If the project wants to not use\nsome new shorthand syntax to make for easy sorting it can just not use\nit. I don't think that should be an argument against the existence of\nsuch a syntax for those who'd like it.\n\n> I suspect that a \"list must be mechanically sorted\" requirement may\n> make it awkward to also have an \"if name is missing, use the last\n> matching explicit name\".  Also, it makes removing one entry among many\n> for the same person less straight-forward (if you are removing the one\n> that happens to be listed first, you need to move the name to the next\n> entry in order to avoid losing it).\n\nThat's a good point, that E-Mail was written rather off-hand, and I see\nfrom find_last_name_for_address_in_mailmap() that I probably had that\nordering in mind.\n\nBut given that point I think a shorthand like that would be equally or\nmore useful if we don't care about the order, the \"more\" being because\nyou'd be able to sort it in any way you like and still get the same\nresults.\n\nI.e. when mapping:\n\n    <gitster@pobox.com> <junio@hera.kernel.org>\n    <gitster@pobox.com> <junio@kernel.org>\n\nWe'll have fully parsed the file, and having also seen:\n\n    Junio C Hamano <gitster@pobox.com> <gitster@pobox.com>\n\nWe can follow the chain and see that since <gitster@pobox.com> has\nexplicit wanted name mapping, that we should use that for say\n<junio@kernel.org>, because it wants to map to <gitster@pobox.com>, so\nit should also get the name mapping.\n\nExcept if we had more than one name mapping, but that could/should also\nbe detected regardless of order.\n"}]}