:orphan:

Release Statistics for U-Boot v2010.12
======================================

* Processed 777 csets from 111 developers

* 31 employers found

* A total of 75570 lines added, 90858 removed (delta -15288)

.. table:: Developers with the most changesets
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     90 (11.6%)
   Mike Frysinger                    58 (7.5%)
   Stefan Roese                      41 (5.3%)
   Marek Vasut                       41 (5.3%)
   Heiko Schocher                    39 (5.0%)
   Peter Tyser                       36 (4.6%)
   Stefano Babic                     32 (4.1%)
   Andreas Bießmann                  22 (2.8%)
   Kumar Gala                        21 (2.7%)
   Steve Sakoman                     21 (2.7%)
   Nobuhiro Iwamatsu                 20 (2.6%)
   Graeme Russ                       20 (2.6%)
   Ben Gardiner                      15 (1.9%)
   Ilya Yanok                        14 (1.8%)
   Reinhard Meyer                    12 (1.5%)
   Scott Wood                        12 (1.5%)
   Albert Aribaud                    12 (1.5%)
   Timur Tabi                        11 (1.4%)
   Prafulla Wadaskar                 11 (1.4%)
   Vitaly Kuzmichev                  11 (1.4%)
   Enric Balletbo i Serra            10 (1.3%)
   John Rigby                        9 (1.2%)
   Sandeep Paulraj                   9 (1.2%)
   Dirk Behme                        8 (1.0%)
   Anatolij Gustschin                8 (1.0%)
   Joakim Tjernlund                  8 (1.0%)
   York Sun                          8 (1.0%)
   John Schmoller                    7 (0.9%)
   Haiying Wang                      7 (0.9%)
   Thomas Weber                      7 (0.9%)
   Asen Dimov                        6 (0.8%)
   Liu Hui-R64343                    6 (0.8%)
   Daniel Hellstrom                  6 (0.8%)
   Kim Phillips                      5 (0.6%)
   Lei Wen                           5 (0.6%)
   Mikhail Kshevetskiy               5 (0.6%)
   Sukumar Ghorai                    5 (0.6%)
   Michal Simek                      5 (0.6%)
   Jerry Huang                       4 (0.5%)
   Matt Waddel                       4 (0.5%)
   Minkyu Kang                       4 (0.5%)
   Sanjeev Premi                     4 (0.5%)
   Nishanth Menon                    3 (0.4%)
   Vaibhav Hiremath                  3 (0.4%)
   Eric Cooper                       3 (0.4%)
   Grazvydas Ignotas                 3 (0.4%)
   Matthias Weisser                  3 (0.4%)
   Shawn Guo                         3 (0.4%)
   Alexander Stein                   3 (0.4%)
   Li Yang                           2 (0.3%)
   Nick Thompson                     2 (0.3%)
   Macpaul Lin                       2 (0.3%)
   Kristoffer Ericson                2 (0.3%)
   Sekhar Nori                       2 (0.3%)
   Sebastien Carlier                 2 (0.3%)
   Matthew McClintock                2 (0.3%)
   Ben Warren                        2 (0.3%)
   Gray Remlin                       2 (0.3%)
   Daniel Hobi                       2 (0.3%)
   Darius Augulis                    2 (0.3%)
   Andre Schwarz                     2 (0.3%)
   Stephan Linz                      2 (0.3%)
   Tirumala Marri                    2 (0.3%)
   Peter Meerwald                    2 (0.3%)
   clagix@gmail.com                  1 (0.1%)
   Baidu Boy                         1 (0.1%)
   P.V.Suresh                        1 (0.1%)
   David Müller (ELSOFT AG)          1 (0.1%)
   Ricardo Ribalda                   1 (0.1%)
   Stefan Popa                       1 (0.1%)
   Horst Kronstorfer                 1 (0.1%)
   Semih Hazar                       1 (0.1%)
   François Revol                    1 (0.1%)
   Becky Bruce                       1 (0.1%)
   Priyanka Jain                     1 (0.1%)
   Alagu Sankar                      1 (0.1%)
   Koen Kooi                         1 (0.1%)
   Tanmay Upadhyay                   1 (0.1%)
   C Nauman                          1 (0.1%)
   Sughosh Ganu                      1 (0.1%)
   Dirk Eibach                       1 (0.1%)
   Florian Fainelli                  1 (0.1%)
   Magnus Sjalander                  1 (0.1%)
   Aaron Sierra                      1 (0.1%)
   Ira Snyder                        1 (0.1%)
   Richard Retanubun                 1 (0.1%)
   Jens Scharsig                     1 (0.1%)
   Magnus Lilja                      1 (0.1%)
   Jaehoon Chung                     1 (0.1%)
   Thomas Chou                       1 (0.1%)
   Damien Dusha                      1 (0.1%)
   Loic Minier                       1 (0.1%)
   mark.vels@team-embedded.nl        1 (0.1%)
   Bryan Wu                          1 (0.1%)
   Ludovic Courtès                   1 (0.1%)
   Brent Darley                      1 (0.1%)
   Sergei Poselenov                  1 (0.1%)
   Mikhail Zolotaryov                1 (0.1%)
   Reinhard Meyer (-VC)              1 (0.1%)
   Emil Medve                        1 (0.1%)
   David Jander                      1 (0.1%)
   Marc-André Hébert                 1 (0.1%)
   Jeff Dischler                     1 (0.1%)
   Graeme Smecher                    1 (0.1%)
   Rupjyoti Sarmah                   1 (0.1%)
   Sascha Laue                       1 (0.1%)
   Wojtek Skulski                    1 (0.1%)
   Torkel Lundgren                   1 (0.1%)
   Victor Gallardo                   1 (0.1%)
   Matthias Fuchs                    1 (0.1%)
   Remy Bohmer                       1 (0.1%)
   ================================  =====


.. table:: Developers with the most changed lines
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     34518 (24.8%)
   Mike Frysinger                    30577 (21.9%)
   Marek Vasut                       13179 (9.5%)
   Stefano Babic                     11065 (7.9%)
   Stefan Roese                      5022 (3.6%)
   Heiko Schocher                    4739 (3.4%)
   Remy Bohmer                       4425 (3.2%)
   Peter Tyser                       4210 (3.0%)
   Reinhard Meyer                    2547 (1.8%)
   Timur Tabi                        1764 (1.3%)
   Dirk Eibach                       1544 (1.1%)
   Ilya Yanok                        1467 (1.1%)
   Albert Aribaud                    1465 (1.1%)
   Prafulla Wadaskar                 1438 (1.0%)
   Sebastien Carlier                 1384 (1.0%)
   Eric Cooper                       1303 (0.9%)
   John Schmoller                    1287 (0.9%)
   Enric Balletbo i Serra            1205 (0.9%)
   Sascha Laue                       1090 (0.8%)
   C Nauman                          1016 (0.7%)
   Andreas Bießmann                  989 (0.7%)
   Matt Waddel                       863 (0.6%)
   Graeme Russ                       835 (0.6%)
   York Sun                          810 (0.6%)
   Sergei Poselenov                  777 (0.6%)
   Scott Wood                        749 (0.5%)
   Tirumala Marri                    648 (0.5%)
   Kumar Gala                        644 (0.5%)
   Peter Meerwald                    604 (0.4%)
   Kristoffer Ericson                553 (0.4%)
   Ben Gardiner                      550 (0.4%)
   Vitaly Kuzmichev                  514 (0.4%)
   Sukumar Ghorai                    483 (0.3%)
   Mikhail Kshevetskiy               454 (0.3%)
   Steve Sakoman                     385 (0.3%)
   Wojtek Skulski                    368 (0.3%)
   Damien Dusha                      318 (0.2%)
   John Rigby                        300 (0.2%)
   Michal Simek                      253 (0.2%)
   Liu Hui-R64343                    252 (0.2%)
   Nobuhiro Iwamatsu                 242 (0.2%)
   Anatolij Gustschin                212 (0.2%)
   Grazvydas Ignotas                 187 (0.1%)
   Haiying Wang                      143 (0.1%)
   Koen Kooi                         140 (0.1%)
   Macpaul Lin                       118 (0.1%)
   Daniel Hellstrom                  113 (0.1%)
   Darius Augulis                    113 (0.1%)
   Nishanth Menon                    88 (0.1%)
   Sandeep Paulraj                   83 (0.1%)
   Joakim Tjernlund                  71 (0.1%)
   Alagu Sankar                      71 (0.1%)
   Thomas Weber                      65 (0.0%)
   Shawn Guo                         65 (0.0%)
   Sekhar Nori                       59 (0.0%)
   Nick Thompson                     57 (0.0%)
   Lei Wen                           56 (0.0%)
   Aaron Sierra                      51 (0.0%)
   Asen Dimov                        45 (0.0%)
   Minkyu Kang                       44 (0.0%)
   Ira Snyder                        44 (0.0%)
   Sughosh Ganu                      43 (0.0%)
   Torkel Lundgren                   42 (0.0%)
   Mikhail Zolotaryov                41 (0.0%)
   Sanjeev Premi                     40 (0.0%)
   Dirk Behme                        39 (0.0%)
   Ludovic Courtès                   35 (0.0%)
   Li Yang                           30 (0.0%)
   Matthias Weisser                  26 (0.0%)
   Matthias Fuchs                    26 (0.0%)
   Alexander Stein                   25 (0.0%)
   Ben Warren                        24 (0.0%)
   Thomas Chou                       24 (0.0%)
   Jens Scharsig                     20 (0.0%)
   Gray Remlin                       17 (0.0%)
   Magnus Lilja                      16 (0.0%)
   Jaehoon Chung                     16 (0.0%)
   Bryan Wu                          16 (0.0%)
   Kim Phillips                      14 (0.0%)
   Rupjyoti Sarmah                   13 (0.0%)
   Vaibhav Hiremath                  11 (0.0%)
   Matthew McClintock                11 (0.0%)
   Daniel Hobi                       11 (0.0%)
   Magnus Sjalander                  11 (0.0%)
   Tanmay Upadhyay                   10 (0.0%)
   David Müller (ELSOFT AG)          9 (0.0%)
   Emil Medve                        9 (0.0%)
   David Jander                      9 (0.0%)
   Graeme Smecher                    9 (0.0%)
   Jerry Huang                       8 (0.0%)
   clagix@gmail.com                  8 (0.0%)
   Andre Schwarz                     7 (0.0%)
   Baidu Boy                         6 (0.0%)
   François Revol                    6 (0.0%)
   Stephan Linz                      5 (0.0%)
   P.V.Suresh                        4 (0.0%)
   Semih Hazar                       4 (0.0%)
   Priyanka Jain                     4 (0.0%)
   Florian Fainelli                  4 (0.0%)
   Reinhard Meyer (-VC)              4 (0.0%)
   Marc-André Hébert                 4 (0.0%)
   Richard Retanubun                 3 (0.0%)
   mark.vels@team-embedded.nl        3 (0.0%)
   Victor Gallardo                   3 (0.0%)
   Stefan Popa                       2 (0.0%)
   Brent Darley                      2 (0.0%)
   Ricardo Ribalda                   1 (0.0%)
   Horst Kronstorfer                 1 (0.0%)
   Becky Bruce                       1 (0.0%)
   Loic Minier                       1 (0.0%)
   Jeff Dischler                     1 (0.0%)
   ================================  =====


.. table:: Developers with the most lines removed
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     23946 (26.4%)
   Mike Frysinger                    13431 (14.8%)
   Marek Vasut                       6370 (7.0%)
   Peter Tyser                       3131 (3.4%)
   Stefan Roese                      962 (1.1%)
   Prafulla Wadaskar                 645 (0.7%)
   Timur Tabi                        635 (0.7%)
   Andreas Bießmann                  471 (0.5%)
   Mikhail Kshevetskiy               411 (0.5%)
   Kumar Gala                        248 (0.3%)
   Scott Wood                        149 (0.2%)
   Grazvydas Ignotas                 135 (0.1%)
   Sughosh Ganu                      41 (0.0%)
   Graeme Russ                       34 (0.0%)
   Alagu Sankar                      32 (0.0%)
   Thomas Weber                      31 (0.0%)
   Matthias Fuchs                    21 (0.0%)
   Nick Thompson                     15 (0.0%)
   Liu Hui-R64343                    9 (0.0%)
   Jens Scharsig                     9 (0.0%)
   Semih Hazar                       4 (0.0%)
   Richard Retanubun                 3 (0.0%)
   Marc-André Hébert                 1 (0.0%)
   ================================  =====


.. table:: Developers with the most signoffs (total 208)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Kumar Gala                        51 (24.5%)
   Sandeep Paulraj                   45 (21.6%)
   Ben Warren                        14 (6.7%)
   Wolfgang Denk                     13 (6.2%)
   Mike Frysinger                    12 (5.8%)
   Peter Tyser                       11 (5.3%)
   Kim Phillips                      11 (5.3%)
   Stefan Roese                      10 (4.8%)
   Anatolij Gustschin                6 (2.9%)
   Reinhard Meyer                    5 (2.4%)
   Kyungmin Park                     4 (1.9%)
   Chris Moore                       2 (1.0%)
   Alessandro Rubini                 2 (1.0%)
   Minkyu Kang                       2 (1.0%)
   Michal Simek                      2 (1.0%)
   Steve Sakoman                     2 (1.0%)
   Heiko Schocher                    2 (1.0%)
   Gray Remlin                       1 (0.5%)
   Ricardo Ribalda Delgado           1 (0.5%)
   Roy Zang                          1 (0.5%)
   Francesco Rendine                 1 (0.5%)
   Aneesh V                          1 (0.5%)
   Cliff Cai                         1 (0.5%)
   Harald Welte                      1 (0.5%)
   Kai.Jiang                         1 (0.5%)
   Marc-Andre Hebert                 1 (0.5%)
   Thomas Smits                      1 (0.5%)
   David Jander                      1 (0.5%)
   Daniel Hellstrom                  1 (0.5%)
   York Sun                          1 (0.5%)
   Stefano Babic                     1 (0.5%)
   ================================  =====


.. table:: Developers with the most reviews (total 5)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Ben Gardiner                      4 (80.0%)
   Sudhakar Rajashekhara             1 (20.0%)
   ================================  =====


.. table:: Developers with the most test credits (total 55)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Steve Sakoman                     10 (18.2%)
   Heiko Schocher                    10 (18.2%)
   Ben Gardiner                      9 (16.4%)
   Stefano Babic                     8 (14.5%)
   Wolfgang Denk                     3 (5.5%)
   Reinhard Meyer                    3 (5.5%)
   Sandeep Paulraj                   2 (3.6%)
   Thomas Chou                       2 (3.6%)
   Sudhakar Rajashekhara             1 (1.8%)
   Peter Tyser                       1 (1.8%)
   Nick Thompson                     1 (1.8%)
   Ira Snyder                        1 (1.8%)
   Detlev Zundel                     1 (1.8%)
   Rob Herring                       1 (1.8%)
   Nishanth Menon                    1 (1.8%)
   John Rigby                        1 (1.8%)
   ================================  =====


.. table:: Developers who gave the most tested-by credits (total 55)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     10 (18.2%)
   Scott Wood                        5 (9.1%)
   Dirk Behme                        5 (9.1%)
   Steve Sakoman                     4 (7.3%)
   Jerry Huang                       4 (7.3%)
   Sukumar Ghorai                    4 (7.3%)
   Nick Thompson                     3 (5.5%)
   Enric Balletbo i Serra            3 (5.5%)
   John Rigby                        2 (3.6%)
   Kumar Gala                        2 (3.6%)
   Daniel Hobi                       2 (3.6%)
   Li Yang                           2 (3.6%)
   Heiko Schocher                    1 (1.8%)
   Ben Gardiner                      1 (1.8%)
   Mike Frysinger                    1 (1.8%)
   Timur Tabi                        1 (1.8%)
   Sughosh Ganu                      1 (1.8%)
   Alagu Sankar                      1 (1.8%)
   Liu Hui-R64343                    1 (1.8%)
   Becky Bruce                       1 (1.8%)
   Sebastien Carlier                 1 (1.8%)
   ================================  =====


.. table:: Developers with the most report credits (total 4)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Vivi Li                           2 (50.0%)
   Dan Lykowski                      1 (25.0%)
   Peter Maydell                     1 (25.0%)
   ================================  =====


.. table:: Developers who gave the most report credits (total 4)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Mike Frysinger                    2 (50.0%)
   Wolfgang Denk                     1 (25.0%)
   Steve Sakoman                     1 (25.0%)
   ================================  =====


.. table:: Top changeset contributors by employer
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   DENX Software Engineering         251 (32.3%)
   (Unknown)                         146 (18.8%)
   Freescale                         83 (10.7%)
   Analog Devices                    59 (7.6%)
   Extreme Engineering Solutions     46 (5.9%)
   Texas Instruments                 26 (3.3%)
   Sakoman Inc.                      20 (2.6%)
   Graeme Russ                       20 (2.6%)
   Nobuhiro Iwamatsu                 17 (2.2%)
   Linaro                            15 (1.9%)
   EmCraft Systems                   14 (1.8%)
   Marvell                           13 (1.7%)
   MontaVista                        11 (1.4%)
   Transmode Systems                 8 (1.0%)
   Dirk Behme                        8 (1.0%)
   Gaisler Research                  7 (0.9%)
   Ronetix                           6 (0.8%)
   Samsung                           5 (0.6%)
   Xilinx                            5 (0.6%)
   Renesas Electronics               3 (0.4%)
   General Electric                  2 (0.3%)
   Matrix Vision                     2 (0.3%)
   Grazvydas Ignotas                 2 (0.3%)
   AMCC                              1 (0.1%)
   ENEA AB                           1 (0.1%)
   ESD Electronics                   1 (0.1%)
   Guntermann & Drunck               1 (0.1%)
   Liebherr                          1 (0.1%)
   OVRO                              1 (0.1%)
   RuggedCom                         1 (0.1%)
   Oce Technologies                  1 (0.1%)
   ================================  =====


.. table:: Top lines changed by employer
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   DENX Software Engineering         69493 (49.9%)
   Analog Devices                    30593 (22.0%)
   (Unknown)                         14459 (10.4%)
   Extreme Engineering Solutions     5551 (4.0%)
   Freescale                         4445 (3.2%)
   Oce Technologies                  4425 (3.2%)
   Guntermann & Drunck               1544 (1.1%)
   EmCraft Systems                   1467 (1.1%)
   Marvell                           1443 (1.0%)
   Linaro                            1165 (0.8%)
   Liebherr                          1090 (0.8%)
   Graeme Russ                       835 (0.6%)
   Texas Instruments                 764 (0.5%)
   MontaVista                        514 (0.4%)
   Sakoman Inc.                      384 (0.3%)
   Xilinx                            253 (0.2%)
   Nobuhiro Iwamatsu                 160 (0.1%)
   Grazvydas Ignotas                 142 (0.1%)
   Gaisler Research                  124 (0.1%)
   Renesas Electronics               82 (0.1%)
   Transmode Systems                 71 (0.1%)
   Samsung                           60 (0.0%)
   General Electric                  57 (0.0%)
   Ronetix                           45 (0.0%)
   OVRO                              44 (0.0%)
   ENEA AB                           42 (0.0%)
   Dirk Behme                        39 (0.0%)
   ESD Electronics                   26 (0.0%)
   AMCC                              13 (0.0%)
   Matrix Vision                     7 (0.0%)
   RuggedCom                         3 (0.0%)
   ================================  =====


.. table:: Employers with the most signoffs (total 208)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Freescale                         65 (31.2%)
   Texas Instruments                 46 (22.1%)
   DENX Software Engineering         32 (15.4%)
   (Unknown)                         32 (15.4%)
   Analog Devices                    13 (6.2%)
   Extreme Engineering Solutions     11 (5.3%)
   Samsung                           6 (2.9%)
   Linaro                            2 (1.0%)
   Gaisler Research                  1 (0.5%)
   ================================  =====


.. table:: Employers with the most hackers (total 117)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         51 (43.6%)
   Freescale                         15 (12.8%)
   DENX Software Engineering         7 (6.0%)
   Texas Instruments                 6 (5.1%)
   Extreme Engineering Solutions     5 (4.3%)
   Linaro                            4 (3.4%)
   Analog Devices                    2 (1.7%)
   Samsung                           2 (1.7%)
   Gaisler Research                  2 (1.7%)
   Marvell                           2 (1.7%)
   Oce Technologies                  1 (0.9%)
   Guntermann & Drunck               1 (0.9%)
   EmCraft Systems                   1 (0.9%)
   Liebherr                          1 (0.9%)
   Graeme Russ                       1 (0.9%)
   MontaVista                        1 (0.9%)
   Sakoman Inc.                      1 (0.9%)
   Xilinx                            1 (0.9%)
   Nobuhiro Iwamatsu                 1 (0.9%)
   Grazvydas Ignotas                 1 (0.9%)
   Renesas Electronics               1 (0.9%)
   Transmode Systems                 1 (0.9%)
   General Electric                  1 (0.9%)
   Ronetix                           1 (0.9%)
   OVRO                              1 (0.9%)
   ENEA AB                           1 (0.9%)
   Dirk Behme                        1 (0.9%)
   ESD Electronics                   1 (0.9%)
   AMCC                              1 (0.9%)
   Matrix Vision                     1 (0.9%)
   RuggedCom                         1 (0.9%)
   ================================  =====
