:orphan:

Release Statistics for U-Boot v2009.08
======================================

* Processed 657 changesets from 96 developers

* 35 employers found

* A total of 84239 lines added, 52495 removed (delta 31744)

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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     75 (11.4%)
   Peter Tyser                       69 (10.5%)
   Jean-Christophe PLAGNIOL-VILLARD  57 (8.7%)
   Mike Frysinger                    56 (8.5%)
   Stefan Roese                      40 (6.1%)
   Prafulla Wadaskar                 23 (3.5%)
   Tom Rix                           22 (3.3%)
   David Brownell                    17 (2.6%)
   Kumar Gala                        16 (2.4%)
   Matthias Fuchs                    16 (2.4%)
   Kim Phillips                      13 (2.0%)
   Heiko Schocher                    12 (1.8%)
   Simon Kagstrom                    10 (1.5%)
   Alessandro Rubini                 10 (1.5%)
   Haiying Wang                      10 (1.5%)
   TsiChung Liew                     9 (1.4%)
   Ilya Yanok                        8 (1.2%)
   Dirk Behme                        8 (1.2%)
   Vivek Mahajan                     8 (1.2%)
   Ben Warren                        7 (1.1%)
   Richard Retanubun                 7 (1.1%)
   Anatolij Gustschin                7 (1.1%)
   Mark Jackson                      6 (0.9%)
   Sandeep Paulraj                   6 (0.9%)
   Grzegorz Bernacki                 6 (0.9%)
   Anton Vorontsov                   6 (0.9%)
   Magnus Lilja                      5 (0.8%)
   Michal Simek                      4 (0.6%)
   Roy Zang                          4 (0.6%)
   Detlev Zundel                     4 (0.6%)
   Dirk Eibach                       4 (0.6%)
   Nobuhiro Iwamatsu                 4 (0.6%)
   Grazvydas Ignotas                 4 (0.6%)
   Andre Schwarz                     3 (0.5%)
   Albin Tonnerre                    3 (0.5%)
   Paul Gortmaker                    3 (0.5%)
   Scott Wood                        3 (0.5%)
   Timur Tabi                        3 (0.5%)
   Giuseppe CONDORELLI               3 (0.5%)
   Po-Yu Chuang                      3 (0.5%)
   Jens Scharsig                     3 (0.5%)
   Robin Getz                        3 (0.5%)
   Poonam Aggrwal                    3 (0.5%)
   Valeriy Glushkov                  3 (0.5%)
   Sedji Gaouaou                     3 (0.5%)
   Harald Krapfenbauer               2 (0.3%)
   Andrzej Wolski                    2 (0.3%)
   Mingkai Hu                        2 (0.3%)
   Luigi 'Comio' Mantellini          2 (0.3%)
   Matthias Ludwig                   2 (0.3%)
   Reinhard Arlt                     2 (0.3%)
   Kyungmin Park                     2 (0.3%)
   Alessio Centazzo                  2 (0.3%)
   Minkyu Kang                       2 (0.3%)
   Shinya Kuribayashi                2 (0.3%)
   Daniel Mack                       2 (0.3%)
   Felix Radensky                    2 (0.3%)
   Guennadi Liakhovetski             2 (0.3%)
   Stefano Babic                     2 (0.3%)
   Daniel Gorsulowski                2 (0.3%)
   Thomas Lange                      2 (0.3%)
   Vivi Li                           2 (0.3%)
   Feng Kan                          1 (0.2%)
   Giulio Benetti                    1 (0.2%)
   Ben Goska                         1 (0.2%)
   John Schmoller                    1 (0.2%)
   Josh Boyer                        1 (0.2%)
   Penda Naveen Kumar                1 (0.2%)
   Michael Evans                     1 (0.2%)
   David Hunter                      1 (0.2%)
   Eric Benard                       1 (0.2%)
   Weirich, Bernhard                 1 (0.2%)
   rhabarber1848@web.de              1 (0.2%)
   Niklaus Giger                     1 (0.2%)
   Remy Bohmer                       1 (0.2%)
   Michael Zaidman                   1 (0.2%)
   Andreas Pretzsch                  1 (0.2%)
   Dieter Kiermaier                  1 (0.2%)
   Piotr Ziecik                      1 (0.2%)
   galak                             1 (0.2%)
   Kazuaki Ichinohe                  1 (0.2%)
   Matthias Weisser                  1 (0.2%)
   Jerry Van Baren                   1 (0.2%)
   Jon Smirl                         1 (0.2%)
   Bryan Wu                          1 (0.2%)
   HeungJun Kim                      1 (0.2%)
   Kevin Morfitt                     1 (0.2%)
   Kim, Heung Jun                    1 (0.2%)
   Peter Meerwald                    1 (0.2%)
   Ilko Iliev                        1 (0.2%)
   Norbert van Bolhuis               1 (0.2%)
   Zach LeRoy                        1 (0.2%)
   Hoan Hoang                        1 (0.2%)
   Srikanth Srinivasan               1 (0.2%)
   Todor I Mollov                    1 (0.2%)
   Sanjeev Premi                     1 (0.2%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     16728 (14.5%)
   Jean-Christophe PLAGNIOL-VILLARD  14381 (12.5%)
   Matthias Fuchs                    9733 (8.4%)
   Mike Frysinger                    9358 (8.1%)
   Scott Wood                        5624 (4.9%)
   Prafulla Wadaskar                 5290 (4.6%)
   Giuseppe CONDORELLI               4937 (4.3%)
   Peter Tyser                       4350 (3.8%)
   Stefan Roese                      4340 (3.8%)
   Roy Zang                          3576 (3.1%)
   Ilya Yanok                        2851 (2.5%)
   Tom Rix                           2753 (2.4%)
   Kazuaki Ichinohe                  2602 (2.3%)
   TsiChung Liew                     2455 (2.1%)
   Luigi 'Comio' Mantellini          2019 (1.7%)
   Reinhard Arlt                     1933 (1.7%)
   Srikanth Srinivasan               1882 (1.6%)
   Dirk Eibach                       1761 (1.5%)
   Kim Phillips                      1344 (1.2%)
   Sedji Gaouaou                     1303 (1.1%)
   David Brownell                    1261 (1.1%)
   Ilko Iliev                        1087 (0.9%)
   Michal Simek                      1060 (0.9%)
   Magnus Lilja                      1040 (0.9%)
   Jon Smirl                         855 (0.7%)
   Jens Scharsig                     839 (0.7%)
   Heiko Schocher                    772 (0.7%)
   Haiying Wang                      619 (0.5%)
   Nobuhiro Iwamatsu                 609 (0.5%)
   Grzegorz Bernacki                 606 (0.5%)
   Robin Getz                        582 (0.5%)
   Ben Warren                        555 (0.5%)
   Daniel Gorsulowski                518 (0.4%)
   Po-Yu Chuang                      443 (0.4%)
   Alessandro Rubini                 408 (0.4%)
   Hoan Hoang                        408 (0.4%)
   Andre Schwarz                     393 (0.3%)
   Dirk Behme                        386 (0.3%)
   Anton Vorontsov                   378 (0.3%)
   Kumar Gala                        377 (0.3%)
   Anatolij Gustschin                278 (0.2%)
   Sandeep Paulraj                   208 (0.2%)
   Dieter Kiermaier                  203 (0.2%)
   Mark Jackson                      182 (0.2%)
   Detlev Zundel                     173 (0.1%)
   Vivek Mahajan                     146 (0.1%)
   Simon Kagstrom                    139 (0.1%)
   Todor I Mollov                    139 (0.1%)
   Albin Tonnerre                    137 (0.1%)
   Kim, Heung Jun                    108 (0.1%)
   Matthias Ludwig                   94 (0.1%)
   Matthias Weisser                  92 (0.1%)
   Paul Gortmaker                    90 (0.1%)
   galak                             81 (0.1%)
   Minkyu Kang                       73 (0.1%)
   Poonam Aggrwal                    66 (0.1%)
   Remy Bohmer                       64 (0.1%)
   Timur Tabi                        63 (0.1%)
   Grazvydas Ignotas                 61 (0.1%)
   Josh Boyer                        61 (0.1%)
   Guennadi Liakhovetski             59 (0.1%)
   Richard Retanubun                 51 (0.0%)
   Stefano Babic                     50 (0.0%)
   Valeriy Glushkov                  46 (0.0%)
   Zach LeRoy                        43 (0.0%)
   Jerry Van Baren                   36 (0.0%)
   Bryan Wu                          35 (0.0%)
   Weirich, Bernhard                 32 (0.0%)
   Felix Radensky                    31 (0.0%)
   rhabarber1848@web.de              30 (0.0%)
   Kyungmin Park                     19 (0.0%)
   Thomas Lange                      13 (0.0%)
   Harald Krapfenbauer               7 (0.0%)
   Daniel Mack                       7 (0.0%)
   Mingkai Hu                        5 (0.0%)
   Shinya Kuribayashi                5 (0.0%)
   Vivi Li                           5 (0.0%)
   Andrzej Wolski                    4 (0.0%)
   Giulio Benetti                    4 (0.0%)
   Penda Naveen Kumar                4 (0.0%)
   Alessio Centazzo                  3 (0.0%)
   Michael Zaidman                   3 (0.0%)
   Feng Kan                          2 (0.0%)
   Ben Goska                         2 (0.0%)
   Andreas Pretzsch                  2 (0.0%)
   Piotr Ziecik                      2 (0.0%)
   Peter Meerwald                    2 (0.0%)
   Norbert van Bolhuis               2 (0.0%)
   Sanjeev Premi                     2 (0.0%)
   John Schmoller                    1 (0.0%)
   Michael Evans                     1 (0.0%)
   David Hunter                      1 (0.0%)
   Eric Benard                       1 (0.0%)
   Niklaus Giger                     1 (0.0%)
   HeungJun Kim                      1 (0.0%)
   Kevin Morfitt                     1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Matthias Fuchs                    6924 (13.2%)
   Scott Wood                        5607 (10.7%)
   Jean-Christophe PLAGNIOL-VILLARD  3555 (6.8%)
   Michal Simek                      1024 (2.0%)
   Kim Phillips                      927 (1.8%)
   Sandeep Paulraj                   70 (0.1%)
   galak                             62 (0.1%)
   Timur Tabi                        51 (0.1%)
   Matthias Ludwig                   29 (0.1%)
   Grazvydas Ignotas                 16 (0.0%)
   Dirk Behme                        10 (0.0%)
   Shinya Kuribayashi                4 (0.0%)
   Thomas Lange                      2 (0.0%)
   Piotr Ziecik                      2 (0.0%)
   Alessio Centazzo                  1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Stefan Roese                      50 (20.5%)
   Kumar Gala                        44 (18.0%)
   Ben Warren                        37 (15.2%)
   Scott Wood                        21 (8.6%)
   Remy Bohmer                       14 (5.7%)
   Kim Phillips                      13 (5.3%)
   Mike Frysinger                    11 (4.5%)
   Wolfgang Denk                     9 (3.7%)
   Jean-Christophe PLAGNIOL-VILLARD  7 (2.9%)
   Nobuhiro Iwamatsu                 6 (2.5%)
   Anatolij Gustschin                5 (2.0%)
   Matthias Ludwig                   3 (1.2%)
   Dirk Behme                        2 (0.8%)
   Phong Vo                          2 (0.8%)
   Peter Pearse                      2 (0.8%)
   HeungJun, Kim                     2 (0.8%)
   Sandeep Paulraj                   1 (0.4%)
   unsik Kim                         1 (0.4%)
   Pieter Voorthuijsen               1 (0.4%)
   Nate Case                         1 (0.4%)
   Gerald Van Baren                  1 (0.4%)
   Piyush Shah                       1 (0.4%)
   Stelian Pop                       1 (0.4%)
   Ed Swarthout                      1 (0.4%)
   Maxim Artamonov                   1 (0.4%)
   Thomas Smits                      1 (0.4%)
   Travis Wheatley                   1 (0.4%)
   Jean Pihet                        1 (0.4%)
   Steve Sakoman                     1 (0.4%)
   Peter Tyser                       1 (0.4%)
   Ilko Iliev                        1 (0.4%)
   Dirk Eibach                       1 (0.4%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Ronen Shitrit                     3 (42.9%)
   Angelo Castello                   2 (28.6%)
   Ira W. Snyder                     1 (14.3%)
   Alessandro Rubini                 1 (14.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     2 (16.7%)
   Jean-Christophe PLAGNIOL-VILLARD  2 (16.7%)
   Ira W. Snyder                     1 (8.3%)
   Mike Frysinger                    1 (8.3%)
   Dirk Behme                        1 (8.3%)
   Andrzej Wolski                    1 (8.3%)
   Gaye Abdoulaye Walsimou           1 (8.3%)
   Heiko Schocher                    1 (8.3%)
   Magnus Lilja                      1 (8.3%)
   Tom Rix                           1 (8.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     6 (50.0%)
   Ben Warren                        1 (8.3%)
   Kim Phillips                      1 (8.3%)
   Peter Tyser                       1 (8.3%)
   Weirich, Bernhard                 1 (8.3%)
   Dieter Kiermaier                  1 (8.3%)
   David Brownell                    1 (8.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Andrzej Wolski                    1 (100.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Mike Frysinger                    1 (100.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   DENX Software Engineering         140 (21.3%)
   (Unknown)                         98 (14.9%)
   Extreme Engineering Solutions     70 (10.7%)
   Freescale                         63 (9.6%)
   Analog Devices                    62 (9.4%)
   jcrosoft                          57 (8.7%)
   Wind River                        25 (3.8%)
   Marvell                           23 (3.5%)
   ESD Electronics                   20 (3.0%)
   EmCraft Systems                   8 (1.2%)
   Texas Instruments                 8 (1.2%)
   Dirk Behme                        8 (1.2%)
   RuggedCom                         7 (1.1%)
   Semihalf Embedded Systems         7 (1.1%)
   Mercury IMC Ltd.                  6 (0.9%)
   MontaVista                        6 (0.9%)
   Universita di Pavia               6 (0.9%)
   Guntermann & Drunck               4 (0.6%)
   Samsung                           4 (0.6%)
   Xilinx                            4 (0.6%)
   Grazvydas Ignotas                 4 (0.6%)
   Atmel                             3 (0.5%)
   BuS Elektronik                    3 (0.5%)
   Free Electrons                    3 (0.5%)
   Matrix Vision                     3 (0.5%)
   ST Microelectronics               3 (0.5%)
   Industrie Dial Face               2 (0.3%)
   Renesas Electronics               2 (0.3%)
   Nobuhiro Iwamatsu                 2 (0.3%)
   AMCC                              1 (0.2%)
   Custom IDEAS                      1 (0.2%)
   IBM                               1 (0.2%)
   Ronetix                           1 (0.2%)
   Jon Smirl                         1 (0.2%)
   Oce Technologies                  1 (0.2%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   DENX Software Engineering         22352 (19.4%)
   jcrosoft                          14381 (12.5%)
   Freescale                         13702 (11.9%)
   ESD Electronics                   12184 (10.6%)
   Analog Devices                    9980 (8.6%)
   (Unknown)                         9938 (8.6%)
   Marvell                           5290 (4.6%)
   ST Microelectronics               4937 (4.3%)
   Extreme Engineering Solutions     4350 (3.8%)
   EmCraft Systems                   2851 (2.5%)
   Wind River                        2843 (2.5%)
   Industrie Dial Face               2019 (1.7%)
   Guntermann & Drunck               1761 (1.5%)
   Atmel                             1303 (1.1%)
   Ronetix                           1087 (0.9%)
   Xilinx                            1060 (0.9%)
   Jon Smirl                         855 (0.7%)
   BuS Elektronik                    839 (0.7%)
   Semihalf Embedded Systems         608 (0.5%)
   Renesas Electronics               576 (0.5%)
   Matrix Vision                     393 (0.3%)
   Dirk Behme                        386 (0.3%)
   Universita di Pavia               381 (0.3%)
   MontaVista                        378 (0.3%)
   Texas Instruments                 214 (0.2%)
   Mercury IMC Ltd.                  182 (0.2%)
   Free Electrons                    137 (0.1%)
   Samsung                           92 (0.1%)
   Oce Technologies                  64 (0.1%)
   Grazvydas Ignotas                 61 (0.1%)
   IBM                               61 (0.1%)
   RuggedCom                         51 (0.0%)
   Custom IDEAS                      36 (0.0%)
   Nobuhiro Iwamatsu                 33 (0.0%)
   AMCC                              2 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Freescale                         80 (32.8%)
   DENX Software Engineering         64 (26.2%)
   (Unknown)                         43 (17.6%)
   Oce Technologies                  14 (5.7%)
   Analog Devices                    11 (4.5%)
   jcrosoft                          7 (2.9%)
   Nobuhiro Iwamatsu                 6 (2.5%)
   Extreme Engineering Solutions     2 (0.8%)
   Dirk Behme                        2 (0.8%)
   Samsung                           2 (0.8%)
   AMCC                              2 (0.8%)
   ARM                               2 (0.8%)
   Marvell                           1 (0.4%)
   Guntermann & Drunck               1 (0.4%)
   Ronetix                           1 (0.4%)
   MontaVista                        1 (0.4%)
   Texas Instruments                 1 (0.4%)
   Custom IDEAS                      1 (0.4%)
   Prodrive                          1 (0.4%)
   Sakoman Inc.                      1 (0.4%)
   Stelian Pop                       1 (0.4%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         39 (39.0%)
   Freescale                         10 (10.0%)
   DENX Software Engineering         7 (7.0%)
   Analog Devices                    4 (4.0%)
   Extreme Engineering Solutions     3 (3.0%)
   Texas Instruments                 3 (3.0%)
   ESD Electronics                   3 (3.0%)
   Samsung                           2 (2.0%)
   Wind River                        2 (2.0%)
   Semihalf Embedded Systems         2 (2.0%)
   Oce Technologies                  1 (1.0%)
   jcrosoft                          1 (1.0%)
   Nobuhiro Iwamatsu                 1 (1.0%)
   Dirk Behme                        1 (1.0%)
   AMCC                              1 (1.0%)
   Marvell                           1 (1.0%)
   Guntermann & Drunck               1 (1.0%)
   Ronetix                           1 (1.0%)
   MontaVista                        1 (1.0%)
   Custom IDEAS                      1 (1.0%)
   ST Microelectronics               1 (1.0%)
   EmCraft Systems                   1 (1.0%)
   Industrie Dial Face               1 (1.0%)
   Atmel                             1 (1.0%)
   Xilinx                            1 (1.0%)
   Jon Smirl                         1 (1.0%)
   BuS Elektronik                    1 (1.0%)
   Renesas Electronics               1 (1.0%)
   Matrix Vision                     1 (1.0%)
   Universita di Pavia               1 (1.0%)
   Mercury IMC Ltd.                  1 (1.0%)
   Free Electrons                    1 (1.0%)
   Grazvydas Ignotas                 1 (1.0%)
   IBM                               1 (1.0%)
   RuggedCom                         1 (1.0%)
   ================================  =====
