$ cat ChangeLog* | grep '^[a-zA-Z0-9].* [^<].* *<' | sed 's/.* \(.*\) *<.*/\1/' | sort | uniq -c | sort -n | grep '[0-9][0-9]' 10 Hidetoshi Tajima 10 J. Ali Harlow 10 Martin Baulig 10 Sebastian Wilhelmi 11 Daniel Elstner 11 George Lebl 12 12 Jakub Steiner 12 Paolo Borelli 13 Federico Mena 13 HideToshi Tajima 13 Kjartan Maraas 13 Robert Brady 13 Robert Ögren 14 Miguel de Icaza 15 Christian Rose 15 Darin Adler 15 Jody Goldberg 15 Raja R Harinath 15 Tony Gale 16 Murray Cumming 16 Raph Levien 17 Elliot Lee 18 James Henstridge 18 Jeff Garzik 19 Carlos Garnacho 19 Stefan Jeske 20 Michael Emmel 20 Morten Welinder 22 Alex Larsson 22 Dom Lachowicz 22 Mark McLoughlin 29 Søren Sandmann 32 Christian Persch 35 jacob berkman 41 Matthias Clasen 45 Behdad Esfahbod 52 Richard Hult 53 Sven Neumann 56 Emmanuele Bassi 57 Peter Mattis 63 Tony Gale 68 Hans Breuer 83 Lars Hamann 104 Anders Carlsson 124 Manish Singh 140 Michael Natterer 169 Alexander Larsson 195 Soeren Sandmann 264 Federico Mena Quintero 350 Jonathan Blandford 357 Havoc Pennington 394 Tor Lillqvist 471 Kristian Rietveld 563 Tim Janik 1743 Matthias Clasen 1876 Owen Taylor There's some noise that I discarded. In short, some commits from Manish Singh and Shawn T. Amundson are from 1998 are not counted. For some reason Matthias Clasen appears twice in the list. Merging them doesn't still help him catch Owen though.