mtn2git: add current name and email mapping script
authorJan Lübbe <jluebbe@debian.org>
Tue, 14 Oct 2008 09:00:43 +0000 (09:00 +0000)
committerJan Lübbe <jluebbe@debian.org>
Tue, 14 Oct 2008 09:00:43 +0000 (09:00 +0000)
contrib/mtn2git/manglenames.py [new file with mode: 0755]

diff --git a/contrib/mtn2git/manglenames.py b/contrib/mtn2git/manglenames.py
new file mode 100755 (executable)
index 0000000..3c38d7d
--- /dev/null
@@ -0,0 +1,258 @@
+#!/usr/bin/python
+# -*- coding: UTF-8 -*-
+# Simple map from realname to...
+# realname : ([keynames], "email address")
+
+all_names = {
+    "Adrian Davey"       : (["ade@openembedded.org"], "ade@unknown.openembedded.org"),
+    "Alan Carvalho de Assis"  : (["acassis@gmail.com"], "acassis@gmail.com"),
+    "Alessandro Gardich" : (["gremlin@gremlin.it"], "gremlin@gremlin.it"),
+    "Alessandro Iurlano" : (["Alessandro Iurlano alessandro.iurlano@gmail.com", "alessandro.iurlano@gmail.com"], "alessandro.iurlano@gmail.com"),
+    "Alexander Hanff"    : (["core.ldf@gmail.com"], "core.ldf@gmail.com"),
+    "Alexis Maldonado "  : (["Alexis Maldonado <maldonad@cs.tum.edu>"], "maldonad@cs.tum.edu"),
+    "Alex Lange"         : (["Alex Lange"], "chicken@handhelds.org"),
+    "Alex Osborne"       : (["Alex Osborne"], "alex.osborne@unknown.openembedded.org"),
+    "Andrea Adami"       : (["andrea.adami@gmail.com"], "andrea.adami@gmail.com"),
+    "Andrew Paulsen"     : (["andrew.paulsen@gmail.com"], "andrew.paulsen@gmail.com"),
+    "Andrew Wilcox"      : (["awilcox@openembedded.org"], "awilcox@unknown.openembedded.org"),
+    "Angus Ainslie"      : (["angus@handheldshell.com"], "angus@handheldshell.com"),
+    "ant"                : (["ant", "ant, Jay"], "ant@unknown.openembedded.org"),
+    "Antonio ospite"     : (["ospite@studenti.unina.it"], "ospite@studenti.unina.it"),
+    "Antti Andreimann"   : (["antti.andreimann@mail.ee", "mailto:antti.andreimann@mail.ee"], "antti.andreimann@mail.ee"),
+    "araimondi"          : (["araimondi@gmx.net"], "araimondi@gmx.net"),
+    "Arjan Schrijver"    : (["arjan@openembedded.org"], "arjan@unknown.openembedded.org"),
+    "Bastian Ballmann"   : (["balle@chaostal.de", "Bastian Ballmann <balle@chaostal.de>"], "balle@chaostal.de"),
+    "Bernhard Guillon"   : (["Bernhard.Guillon@opensimpad.org", "Bernhard Guillon <Bernhard.Guillon@opensimpad.org>", "Bernhard Guillon <Bernhard.Guillon@opensimpad.org> - close #1874"], "Bernhard.Guillon@opensimpad.org"),
+    "Bernhard Rosenkraenzer" : (["bero@arklinux.org"], "bero@arklinux.org"),
+    "Bignaux Ronan"      : (["ronan@aimao.org"], "ronan@aimao.org"),
+    "Bruno Randolf"      : (["br1@openembedded.org", "(none)!br1"], "br1@unknown.openembedded.org"),
+    "Carsten Schneider"  : (["Carsten Schneider <zcarsten@gmx.net>"], "zcarsten@gmx.net"),
+    "ccsmart"            : (["ccsmart@openembedded.org", "ccsmart@smartpal.de"], "ccsmart@smartpal.de"),
+    "Cesar Eduardo Barros"     : (["cesarb@cesarb.net"], "cesarb@cesarb.net"),
+    "Chia-I Wu"          : (["olvaffe@gmail.com"], "olvaffe@gmail.com"),
+    "Chris Larson"       : (["clarson@kergoth.com", "tuxnami.org!kergoth", "(none)!kergoth", "ti.com!kergoth", "direwolf!kergoth", "ti.com!a0868066", "ti.com!patch", "local!kergoth", "local[kergoth]!kergoth", "handhelds.org!kergoth", "org[kergoth]!kergoth", "kergoth.com!kergoth", "com[kergoth]!kergoth"], "clarson@kergoth.com"),
+    "Chris Lord"         : (["Cwiiis", "(none)!cwiiis"], "chris@openedhand.com"),
+    "Christiano P."      : (["Cristiano P. <cris69@solnet.ch>"], "cris69@solnet.ch"),
+    "Clark Wixon"        : (["cwixon@usa.net"], "cwixon@usa.net"),
+    "Clement Hermann"    : (["clement.hermann@free.fr"], "clement.hermann@free.fr"),
+    "Cliff Brake"        : (["cbrake@openembedded.org", "accelent.com!cbrake", "rr.com!cbrake"], "cbrake@bec-systems.com"),
+    "Craig Hughes"       : (["craig@gumstix.com"], "craig@gumstix.com"),
+    "Cyril Romain"       : (["c.romain@laposte.net", "CyrilRomain", "Cyril Romain", "cyril Romain <c.romain@laposte.net>", "Cyril Romain <c.romain@laposte.net>", "cyril.romain@gmail.com", "cyril.romain@laposte.net"], "cyril.romain@gmail.com"),
+    "Daniel Willmann"    : (["daniel@openembedded.org", "daniel@totalueberwachung.de"], "daniel@totalueberwachung.de"),
+    "Dan Williams"       : (["Dan Williams <dan.j.williams@gmail.com>"], "dan.j.williams@gmail.com"),
+    "David Karlstrom"    : (["daka@nslu2-linux.org", "daka@thg.se"], "daka@thg.se"),
+    "Denys Dmytriyenko"  : (["denis@denix.org"], "denis@denix.org"),
+    "Derek Young"        : (["dyoung@nslu2-linux.org", "(none)!dereky", "(none)!dyoung"], "dyoung@nslu2-linux.org"),
+    "Dirk Opfer"         : (["dirk@openembedded.org", "opfer.lan!dirk"], "dirk@unknown.openembedded.org"),
+    "Dmitry Artamonow"   : (["DmitryArtamonow", "mad_soft@inbox.ru"], "mad_soft@inbox.ru"),
+    "Dmitry Baryshkov"   : (["Dmitry Baryshkov <dbaryshkov@gmail.com>", "dbaryshkov@gmail.com"], "dbaryshkov@gmail.com"),
+    "Dojii Seketeli"     : (["dodji@openedhand.com"], "dodji@openedhand.com"),
+    "Dominik Kuhlen"     : (["kuhlen@openembedded.org"], "kuhlen@gmit-gmbh.de"),
+    "Eblis"              : (["eblis102@gmail.com"], "eblis102@gmail.com"),
+    "Erik Hovland"       : (["erik@openembedded.org", "erik@hovland.org"], "erik@hovland.org"),
+    "Esben Haabendal"    : (["eha@doredevelopment.dk"], "eha@doredevelopment.dk"),
+    "Fabrice Aeschbacher": (["Fabrice.Aeschbacher@siemens.com"], "Fabrice.Aeschbacher@siemens.com"),
+    "Felix Domke"        : (["tmbinc@openembedded.org"], "tmbinc@unknown.openembedded.org"),
+    "Florian Boor"       : (["florian@openembedded.org"], "florian.boor@kernelconcepts.de"),
+    "Frans Meulenbroeks" : (["eFfeM@openembedded.org"], "effem@unknown.openembedded.org"),
+    "Frederic Bompart"   : (["frederic@openembedded.org"], "frederic@unknown.openembedded.org"),
+    "Geoffrey Wossum"    : (["gwossum", "gwossum@acm.org", "geoffrey.wossum"], "gwossum@acm.org"),
+    "Gerald Britton"     : (["doomcom.org!gbritton", "org[gbritton]!gbritton"], "gbritton@doomcom.org"),
+    "giel"               : (["giel"], "giel@unknown.openembedded.org"),
+    "gilligan"           : (["gilligan@openembedded.org"], "gilligan@unknown.openembedded.org"),
+    "Giorgio Padrin"     : (["Giorgio Padrin <giorgio@mandarinlogiq.org>"], "giorgio@mandarinlogiq.org"),
+    "GoxboxLive"         : (["GoxboxLive <goxboxlive@gmail.com>"], "goxboxlive@gmail.com"),
+    "Graeme Gregory"     : (["dp@xora.org.uk", "xora@openembedded.org", "hyboria!xora", "(none)!xora", "(none)!XorA"], "dp@xora.org.uk"),
+    "Greg Gilbert"       : (["brooks.edu!ggilbert", "(none)!ggilbert", "treke.ath.cx!ggilbert", "treke.net!ggilbert"], "greg@treke.net"),
+    "Grzegorz Ratajczak" : (["McGregor <mcgregor@blackmesaeast.com.pl>"], "mcgregor@blackmesaeast.com.pl"),
+    "Harald Welte"       : (["laforge@openmoko.org"], "laforge@openmoko.org"),
+    "Helge Deller"       : (["deller@gmx.de"], "deller@gmx.de"),
+    "Henning Heinold"    : (["woglinde", "woglinde@openembedded.org", "woglinde2@openembedded.org"], "heinold@inf.fu-berlin.de"),
+    "Henryk Ploetz"      : (["henryk@openembedded.org", "henryk@openmoko.org", "henryk.ploetz"], "henryk@openmoko.org"),
+    "Henry von Tresckow" : (["hvontres@gmail.com", "hvontres"], "hvontres@gmail.com"),
+    "hillct-oe"          : (["hillct-oe@pinnacledigital.com"], "hillct-oe@pinnacledigital.com"),
+    "Holger Freyther"    : (["freyther@openembedded.org", "zecke@selfish.org", "handhelds.org!zecke", "(none)!ich"], "zecke@selfish.org"),
+    "Holger Schurig"     : (["schurig@openembedded.org", "hs4233@mail.mn-solutions.de", "homelinux.net!schurig", "mn-logistik.de!schurig", "mn-solutions.de!schurig"], "schurig@mn-solutions.de"),
+    "ja4mail"            : (["jay4mail@gmail.com"], "jay4mail@gmail.com"),
+    "Jake Morrison"      : (["Jake MORRISON", "Jake Morrison <jake@cogini.com>", "Jake MORRISON <jake@cogini.com>"], "jake@cogini.com"),
+    "Jamie Lenehan"      : (["lenehan@openembedded.org", "lenehan@twibble.org"], "lenehan@twibble.org"),
+    "Jan Lübbe"          : (["jluebbe@lasnet.de", "jluebbe@openembedded.org"], "jluebbe@debian.org"),
+    "Jeremy Laine"       : (["jemery_laine", "Jereme_Laine", "Jeremy_Laine", "jeremy.laine@m4x.org", "jeremy_laine@openembedded.org", "jeremy_laine"], "jeremy.laine@m4x.org"),
+    "Jeroen Hoek"        : (["Jeroen Hoek"], "jeroen.hoek@unknown.openembedded.org"),
+    "Joaquim Duran"      : (["Joaquim Duran <joaquinduran@adtelecom.es>", "joaquinduran@adtelecom.es"], "joaquinduran@adtelecom.es"),
+    "John Bowler"        : (["jbowler@nslu2-linux.org", "kalmiopsis!jbowler"], "jbowler@nslu2-linux.org"),
+    "John Lee"           : (["john_lee@openembedded.org", "john_lee@openmoko.com"], "john_lee@openmoko.org"),
+    "Jonathan McDowell"  : (["noodles@openembedded.org", "orange!noodles"], "noodles@earth.li"),
+    "Jordan Crouse"      : (["amd.com!jcrouse"], ""),
+    "Jorik Jonker"       : (["jorik@kippendief.biz"], "jorik@kippendief.biz"),
+    "José Bernardo de Bandos Rodrigues da Silva" : (["jbs@bandos.homelinux.com"], "jbs@bandos.homelinux.com"),
+    "Joseph Cole"        : (["jnc@openembedded.org"], "jnc@unknown.openembedded.org"),
+    "Joshua Wise"        : (["joshuawise.com!joshua"], ""),
+    "jp30"               : (["jp30@nslu2-linux.org"], "jp30@nslu2-linux.org"),
+    "Junqian Gordon Xu"  : (["xjqian@gmail.com", "xjqian@openembedded.org"], "xjqian@gmail.com"),
+    "Justin Patrin"      : (["justinp@openembedded.org"], "justinp@unknown.openembedded.org"),
+    "Kalev Lember"       : (["kalev@smartlink.ee"], "kalev@smartlink.ee"),
+    "Karol Sokolowski"   : (["Karol Sokolowski <sokoowpwr@o2.pl>"], "sokoowpwr@o2.pl"),
+    "Khem Raj"           : (["khem@openembedded.org", "KhemRaj", "raj.khem@gmail.com"], "raj.khem@gmail.com"),
+    "Koen Kooi"          : (["koen@openembedded.org", "(none)!koen", "utwente.nl!koen", "void!koen"], "koen@openembedded.org"),
+    "kolla"              : (["kolla@uninett.no"], "kolla@uninett.no"),
+    "Kristoffer Ericson" : (["kristoffer@openembedded.org"], "kristoffer@unknown.openembedded.org"),
+    "Leon Woestenberg"   : (["likewise@gmx.net", "likewise@openembedded.org"], "leon.woestenberg@gmail.com"),
+    "Leon Zhang"         : (["Leon Zhang"], "leon.zhang@unknown.openembedded.org"),
+    "Liam Girdwood"      : (["lrg@openembedded.org"], "liam.girdwood@wolfsonmicro.com"),
+    "Lorn Potter"        : (["trolltech.com.au!lpotter", "(none)!lpotter"], ""), 
+    "Lukas Gorris"       : (["Lukas Gorris", "lukas.gorris@gmx.de"], "lukas.gorris@gmx.de"),
+    "Manuel Teira"       : (["Manuel Teira <manuel.teira@telefonica.net>", "manuel.teira@telefonica.net", "sirfred@openembedded.org"], "manuel.teira@telefonica.net"),
+    "Marcin Juszkiewicz" : (["Marcin", "Marcin Juszkiewicz <openembedded@hrw.one.pl>", "Marcin Juzkiewicz <hrw@openembedded.org>", "hrw@openedhand.com", "hrw@openembedded.org", "local!szczepan", "hrw.one.pl!szczepan", "hrw.one.pl!hrw", "local!hrw"], "openembedded@hrw.one.pl"),
+    "Marek Vasut"        : (["MarekVasut", "marek.vasut@gmail.com", "Marek Vasut <marek.vasut@gmail.com>", "Marek Vašut <marek.vasut@gmail.com>"], "marek.vasut@gmail.com"),
+    "Mark Brown"         : (["broonie@sirena.org.uk", "broonie"], "broonie@sirena.org.uk"),
+    "Martin Dietze"      : (["MartinDietze@openembedded.org"], "martin.dietze@unknown.openembedded.org"),
+    "mas"                : (["mas@ecs.soton.ac.uk"], "mas@ecs.soton.ac.uk"),
+    "mattaw"             : (["mattaw"], "mattaw@unknown.openembedded.org"),
+    "Matthew Allum"      : (["(none)!mallum"], "mallum@openedhand.com"),
+    "Matthias Goebl"     : (["mgoebl@openembedded.org"], "mgoebl@unknown.openembedded.org"),
+    "Matthias Hentges"   : (["coredump2@openembedded.org", "coredump@openembedded.org", "local!CoreDump", "handhelds.org!CoreDump", "local!mhentges"], "coredump@unknown.openembedded.org"),
+    "Matt Reimer"        : (["mreimer@openembedded.org"], "mreimer@unknown.openembedded.org"),
+    "Michael Krelin"     : (["polyonymous", "polyonymous@klever.net", "polyonymous@openembedded.org"], "hacker@klever.net"),
+    "Michael Lauer"      : (["mickeyl", "mickeyl@openembedded.org", "uni-frankfurt.de!mickeyl", "uni-frankfurt.de!mickey", "uni-frankfurt.de!patch", "vanille.de!mickey", "vanille.de!mickeyl", "de[mickey]!mickey", "de[mickey]!mickeyl"], "mickey@vanille-media.de"),
+    "Michael-Luke Jones" : (["blaster8@nslu2-linux.org"], "mlj28@cam.ac.uk"),
+    "Michal Panczyk"     : (["mpanczyk@gmail.com"], "mpanczyk@gmail.com"),
+    "MIka Laitio"        : (["lamikr@openembedded.org"], "lamikr@unknown.openembedded.org"),
+    "Mike Montour"       : (["mail@mmontour.net"], "mail@mmontour.net"),
+    "Mike Westerhof"     : (["mwester@openembedded.org", "mwester@wraith"], "mwester@dls.net"),
+    "Mustafa Yuecel"     : (["yuecelm@nslu2-linux.org", "yuecelm@openembedded.org"], "yuecelm@ee.ethz.ch"),
+    "musti"              : (["musti@openembedded.org"], "musti@unknown.openembedded.org"),
+    "Nicolas Ferre"      : (["nicolas.ferre@atmel.com", "nicolas.ferre@rfo.atmel.com", "nicolasfr@gmail.com", "Enodr <nicolasfr@gmail.com>"], "nicolasfr@gmail.com"),
+    "Nigel Kostiuck"     : (["labotomy.net!emte", "(none)!emte"], "emte@labotomy.net"),
+    "Oliver Fels"        : (["oliver.fels@gmx.net", "Oliver Fels <oliver.fels@gmx.net>"], "oliver.fels@gmx.net"),
+    "Ondrej Sokol"       : (["Ondrej Sokol <o.sokol@seznam.cz>"], "o.sokol@seznam.cz"),
+    "OpenEmbedded Project"     : (["oe@openembedded.org"], "openembedded-devel@lists.openembedded.org"),
+    "OpenMoko anonymizer key"  : (["openmoko@openembedded.org"], "devel@lists.openmoko.org"),
+    "Otavio Salvador"    : (["otavio@ossystems.com.br", "Otavio Salvador <otavio@debian.org>", "Otavio Salvador <otavio@ossystems.com.br>"], "otavio@ossystems.com.br"),
+    "Ovidiu Sas"         : (["osas@nslu2-linux.org"], "sip.nslu@gmail.com"),
+    "Oyvind Repvik"      : (["nail@nslu2-linux.org", "oyvind@repvik.org"], "nail@nslu2-linux.org"),
+    "Patrick Ohly"       : (["pohly@openembedded.org"], "pohly@unknown.openembedded.org"),
+    "Patrick Steiner"    : (["law@a1.net", "law@openembedded.org", "Patrick Steiner <law@a1.net>", "Patrick Steiner <patrick.steiner@a1.net>"], "law@a1.net"),
+    "Patrik Gfeller"     : (["Patrik Gfeller <gfellerpatrik@gmx.net>", "gfellerpatrik@gmx.net"], "gfellerpatrik@gmx.net"),
+    "Paul Eggleton"      : (["bluelightning", "bluelightning@bluelightning.org", "bluelightning@openembedded.org", "Paul Eggleton"], "bluelightning@bluelightning.org"),
+    "Paul Sokolovsky"    : (["pfalcon@openembedded.org", "pmiscml@gmail.com"], "pmiscml@gmail.com"),
+    "Peter Urbanec"      : (["peteru@openembedded.org"], "peteru@unknown.openembedded.org"),
+    "Petr Stetiar"       : (["ynezz@true.cz", "PetrŠtetiar"], "ynezz@true.cz"),
+    "Phil Blundell"      : (["pb@openembedded.org", "nexus.co.uk!pb", "(none)!pb", "uk[pb]!pb", "reciva.com!pb"], "pb@unknown.openembedded.org"),
+    "Philip Balister"    : (["crofton@openembedded.org"], "philip@balister.org"),
+    "Philippe De Swert"  : (["philippe@openembedded.org"], "philippe@unknown.openembedded.org"),
+    "Philipp Zabel"      : (["ph5@openembedded.org", "pH5@openembedded.org"], "philipp.zabel@gmail.com"),
+    "Pieter G"           : (["pieterg@gmx.com"], "pieterg@gmx.com"),
+    "Purdyd"             : (["purdyd_at_wisheights@yahoo.com"], "purdyd_at_wisheights@yahoo.com"),
+    "Raymond Danks"      : (["raymond@edanks.com"], "raymond@edanks.com"),
+    "Rene Wagner"        : (["rw@openembedded.org", "dyndns.org!oe", "dyndns.org!reenoo"], "rw@unknown.openembedded.org"),
+    "Richard Purdie"     : (["rpurdie@openembedded.org", "rpurdie@rpsys.net", "rpsys.net!RP", "example.net!RP", "rpsys.net!anon", "rpsys.net!root", "example.net!root"], "rpurdie@rpsys.net"),
+    "Rick Farina"        : (["Zero_Chaos", "Zero_Chaos <sidhayn@hotmail.com>"], "sidhayn@hotmail.com"),
+    "Robert Demski"      : (["Robert Demski <Robert.Demski@wp.pl>"], "Robert.Demski@wp.pl"),
+    "Robert Schuster"    : (["thebohemian@openembedded.org", "thebohemian2@openembedded.org", "thebohemian@gmx.net", "theBohemian@gmx.net"], "thebohemian@gmx.net"),
+    "Rodrigo Vivi"       : (["rodrigo.vivi@gmail.com", "rodrigo.vivi@openembedded.org"], "rodrigo.vivi@gmail.com"),
+    "Rod Whitby"         : (["rwhitby@nslu2-linux.org", "nslu2-linux@nslu2-linux.org", "rwhitby.net!rwhitby", "(none)!rwhitby"], "rod@whitby.id.au"),
+    "Rolf Leggewie"      : (["Rolf Leggewie <bugs.openembedded.org@rolf.leggewie.biz>", "bugs.openembedded.org@rolf.leggewie.biz", "Laibsch@openembedded.org"], "oe-devel@rolf.leggewie.biz"),
+    "Roman Moravcik"     : (["roman.moravcik@gmail.com"], "roman.moravcik@gmail.com"),
+    "Russ Ferriday"      : (["russf@topia.com"], "russf@topia.com"),
+    "Sergey Bostandzhyan": (["jin@mediatomb.cc", "jin@mediatomb.org"], "jin@mediatomb.org"),
+    "Sergey Lapin"       : (["Sergey Lapin <slapinid@gmail.com>", "slapin", "slapinid@gmail.com", "slapin@openembedded.org"], "slapinid@gmail.com"),
+    "Shane Volpe"        : (["Shane Volpe", "shanevolpe@gmail.com", "Shane Volpe <shanevolpe@gmail.com>", "svolpe@openembedded.org"], "shanevolpe@gmail.com"),
+    "Simon Vogl"         : (["simon.vogl@researchstudio.at", "vogl@soft.uni-linz.ac.at"], "vogl@soft.uni-linz.ac.at"),
+    "Sleep Walker"       : (["Sleep.Walker <froser@gmail.com>"], "froser@gmail.com"),
+    "Sören Apel"         : (["abraxa_", "abraxa@dar-clan.de"], "abraxa@dar-clan.de"),
+    "Stanislav Brabec"   : (["utx@openembedded.org", "utx@penguin.cz", "Stanislav Brabec <utx@penguin.cz>"], "utx@penguin.cz"),
+    "Stefan Schmidt"     : (["stefan@openembedded.org", "Stefan Schmidt"], "stefan@datenfreihafen.org"),
+    "Stelios Koroneos"   : (["ifaistos@openembedded.org"], "skoroneos@digital-opsis.com"),
+    "Stepan Backshaev"   : (["Stepan Backshaev <step2back@gmail.com>"], "step2back@gmail.com"),
+    "Steve Sakoman"      : (["sakoman@gmail.com", "steve@sakoman.com"], "steve@sakoman.com"),
+    "Thomas Kunze"       : (["thesing", "thesing@openembedded.org", "Thomas Kunze <thesing>", "Thomas Kunze <thommycheck@gmx.de>", "Thomas Kunze <thommy@tabao.de>", "thommy@tabao.de"], "thommycheck@gmx.de"),
+    "Thomas Wood"        : (["thomas@openedhand.com"],"thomas@openedhand.com"),
+    "Tim Ansell"         : (["mithis.com!buildroot", "mithis.com!mithro", "com[tim]!mithro"], "mithro@mithis.com"),
+    "Tim Ellis"          : (["tim.ellis@mac.com"], "tim.ellis@mac.com"),
+    "Tim Hurman"         : (["kano.org.uk!timh"], "kano@kano.org.uk"),
+    "Tim Sander"         : (["oe@iss.tu-darmstadt.de"], "oe@iss.tu-darmstadt.de"),
+    "T Kemp"             : (["tkemp@klc.net.nz"], "tkemp@klc.net.nz"),
+    "Todd Blumer"        : (["todd@openembedded.org", "todd@sdgsystems.com"], "todd@sdgsystems.com"),
+    "Tom King"           : (["ka6sox@nslu2-linux.org"], "ka6sox@nslu2-linux.org"),
+    "Tom Kirkpatrick"    : (["Tom Kirkpatrck", "stv@kirkconsulting.co.uk", "Tom Kirkpatrick <stv@kirkconsulting.co.uk>"], "stv@kirkconsulting.co.uk"),
+    "Tom Rini"           : (["TomRini", "Tom Rini", "trini@embeddedalley.com"], "trini@embeddedalley.com"),
+    "Tom Walsh"          : (["Tom Walsh <tom@openhardware.net>"], "tom@openhardware.net"),
+    "Valentin Longchamp" : (["valentin.longchamp@epfl.ch"], "valentin.longchamp@epfl.ch"),
+    "Wolfson Key"        : (["wolfson@openembedded.org"], "linux@wolfsonmicro.com"),
+    "Yin Kangkai"        : (["arfankai@gmail.com"], "arfankai@gmail.com"),
+}
+
+reverse = {
+    '1.34!tigrux' : None,
+    'apache' : None,
+    'bitkeeper.com!nslu2-linux.adm' : None,
+    'bkbits.net!nslu2-linux.adm' : None,
+    'bkbits.net!openembedded.adm' : None,
+    'black.lan!peteru' : None,
+    '!ByronT' : None,
+    'cambridgebroadband.com!rjt' : None,
+    'conversagent.com!fontenot' : None,
+    'doma!kebert' : None,
+    'giantshoulder.com!g2' : None,
+    'home!ral' : None,
+    'local!phillim' : None,
+    'mine.nu!erich' : None,
+    '(none)!chris' : None,
+    '(none)!chriz' : None,
+    '(none)!dp' : None,
+    '(none)!jacques' : None,
+    '(none)!openembedded' : None,
+    '(none)!pablo' : None,
+    '(none)!patrick' : None,
+    '(none)!red' : None,
+    '(none)!root' : None,
+    '(none)!unslung' : None,
+    '(none)!wind' : None,
+    '(none)!xf005570' : None,
+    'nslu2-linux.org!perlguru' : None,
+    'rant-central.com!CodeWhacker' : None,
+    'rant-central.com!roy' : None,
+    'rochcivictheatre.org!tgall' : None,
+    'techsurgeons.com!joshin' : None,
+    'tetrapyloctomy.org!p.osiczko' : None,
+    'thegrantclan.org!jgrant' : None,
+    'uottawa.ca!stephane' : None,
+    '!xf005570' : None,
+    'zeckescompany.nl!alwin' : None,
+    'activebuddy.com!fontenot' : None,
+}
+
+import re, sys
+
+for name, (ids, email) in all_names.items():
+    sys.stderr.write( "%s: %s\n" % (name, email) )
+    for id in ids:
+        assert not id in reverse
+        reverse[id] = (name, email)
+
+rx = re.compile(r"^(author|committer) ([a-zA-Z0-9\[\]\(\)\-\.!])* <([a-zA-Z0-9\[\]\(\)\-\.\@!]+)> (.+)\n$")
+
+last = ""
+
+for line in sys.stdin:
+    m = rx.match(line)
+    if m is None:
+        sys.stdout.write(line)
+        continue
+    g = m.groups()
+    try:
+        replacement = reverse[g[2]]
+    except:
+        replacement = None
+        sys.stderr.write("id unkown %s\n" % repr(g[2]))
+    if replacement is None:
+        if '!' in g[2]:
+            replacement = (g[2], g[2] + "@bk.openembedded.invalid")
+        elif '@' in g[2]:
+            replacement = (g[2], g[2])
+        else:
+            raise "id unkown %s" % repr(replacement)
+    line = m.expand(r"\1 %s <%s> \4\n" % replacement )
+    sys.stdout.write(line)
+