:orphan:

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

* Processed 433 changesets from 74 developers

* 27 employers found

* A total of 52469 lines added, 17023 removed (delta 35446)

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

   ================================  =====
   Name                              Count
   ================================  =====
   Mike Frysinger                    95 (21.9%)
   Jean-Christophe PLAGNIOL-VILLARD  55 (12.7%)
   Peter Tyser                       32 (7.4%)
   Wolfgang Denk                     29 (6.7%)
   Stefan Roese                      24 (5.5%)
   Detlev Zundel                     15 (3.5%)
   Kumar Gala                        12 (2.8%)
   Ladislav Michl                    12 (2.8%)
   Haavard Skinnemoen                9 (2.1%)
   Haiying Wang                      8 (1.8%)
   Scott Wood                        7 (1.6%)
   Matthias Fuchs                    6 (1.4%)
   Graeme Russ                       6 (1.4%)
   Dave Liu                          5 (1.2%)
   Rabin Vincent                     5 (1.2%)
   Heiko Schocher                    5 (1.2%)
   David Brownell                    5 (1.2%)
   Wolfgang Grandegger               5 (1.2%)
   Shinya Kuribayashi                4 (0.9%)
   Kim Phillips                      4 (0.9%)
   Graf Yang                         4 (0.9%)
   Dirk Behme                        4 (0.9%)
   Sanjeev Premi                     4 (0.9%)
   Daniel Mack                       3 (0.7%)
   Ricardo Ribalda                   3 (0.7%)
   Minkyu Kang                       3 (0.7%)
   Guennadi Liakhovetski             3 (0.7%)
   Jon Smirl                         3 (0.7%)
   Mark Jackson                      3 (0.7%)
   Olav Morken                       3 (0.7%)
   Remy Bohmer                       2 (0.5%)
   RONETIX - Ilko Iliev              2 (0.5%)
   Yoshihiro Shimoda                 2 (0.5%)
   Manikandan Pillai                 2 (0.5%)
   Yauhen Kharuzhy                   2 (0.5%)
   Andreas Huber                     2 (0.5%)
   Emil Medve                        2 (0.5%)
   Sascha Hauer                      2 (0.5%)
   Anatolij Gustschin                2 (0.5%)
   Kyungmin Park                     2 (0.5%)
   Tom Rix                           2 (0.5%)
   Mingkai Hu                        2 (0.5%)
   David Gibson                      2 (0.5%)
   Ben Warren                        1 (0.2%)
   Fredrik Arnerup                   1 (0.2%)
   Felix Radensky                    1 (0.2%)
   Ilya Yanok                        1 (0.2%)
   Thomas Lange                      1 (0.2%)
   Rohit Hagargundgi                 1 (0.2%)
   Marco Stornelli                   1 (0.2%)
   Sergey Lapin                      1 (0.2%)
   Daniel Gorsulowski                1 (0.2%)
   Adrian Hunter                     1 (0.2%)
   Gao Guanhua                       1 (0.2%)
   Michael Zaidman                   1 (0.2%)
   Timur Tabi                        1 (0.2%)
   Todor I Mollov                    1 (0.2%)
   Becky Bruce                       1 (0.2%)
   Peter Korsgaard                   1 (0.2%)
   Alan Carvalho de Assis            1 (0.2%)
   Artem Bityutskiy                  1 (0.2%)
   Ulf Samuelsson                    1 (0.2%)
   Nicolas Ferre                     1 (0.2%)
   unsik Kim                         1 (0.2%)
   apgmoorthy                        1 (0.2%)
   Laurent Gregoire                  1 (0.2%)
   Jens Scharsig                     1 (0.2%)
   Nishanth Menon                    1 (0.2%)
   Sonic Zhang                       1 (0.2%)
   Eric Schumann                     1 (0.2%)
   Michael Lawnick                   1 (0.2%)
   Grzegorz Bernacki                 1 (0.2%)
   Trent Piepho                      1 (0.2%)
   Gunnar Rangoy                     1 (0.2%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Stefan Roese                      21338 (36.5%)
   Mike Frysinger                    7887 (13.5%)
   Wolfgang Denk                     5938 (10.2%)
   Jean-Christophe PLAGNIOL-VILLARD  4888 (8.4%)
   Detlev Zundel                     1771 (3.0%)
   Haiying Wang                      1577 (2.7%)
   RONETIX - Ilko Iliev              1344 (2.3%)
   Graeme Russ                       1331 (2.3%)
   Haavard Skinnemoen                1272 (2.2%)
   unsik Kim                         1080 (1.8%)
   Remy Bohmer                       1054 (1.8%)
   Dave Liu                          868 (1.5%)
   Kumar Gala                        830 (1.4%)
   Grzegorz Bernacki                 788 (1.3%)
   Peter Tyser                       751 (1.3%)
   Ladislav Michl                    750 (1.3%)
   Ulf Samuelsson                    747 (1.3%)
   Trent Piepho                      738 (1.3%)
   Matthias Fuchs                    678 (1.2%)
   Marco Stornelli                   433 (0.7%)
   Mingkai Hu                        374 (0.6%)
   Sanjeev Premi                     177 (0.3%)
   Scott Wood                        174 (0.3%)
   Dirk Behme                        148 (0.3%)
   Wolfgang Grandegger               127 (0.2%)
   Heiko Schocher                    115 (0.2%)
   Manikandan Pillai                 105 (0.2%)
   David Gibson                      95 (0.2%)
   Gunnar Rangoy                     88 (0.2%)
   Graf Yang                         72 (0.1%)
   Artem Bityutskiy                  71 (0.1%)
   Minkyu Kang                       63 (0.1%)
   Michael Zaidman                   59 (0.1%)
   Olav Morken                       53 (0.1%)
   Tom Rix                           53 (0.1%)
   Kyungmin Park                     52 (0.1%)
   Rabin Vincent                     47 (0.1%)
   Adrian Hunter                     47 (0.1%)
   Nicolas Ferre                     47 (0.1%)
   apgmoorthy                        44 (0.1%)
   Shinya Kuribayashi                35 (0.1%)
   Anatolij Gustschin                35 (0.1%)
   Kim Phillips                      29 (0.0%)
   Ricardo Ribalda                   26 (0.0%)
   Mark Jackson                      26 (0.0%)
   Andreas Huber                     25 (0.0%)
   Jon Smirl                         24 (0.0%)
   David Brownell                    20 (0.0%)
   Ben Warren                        19 (0.0%)
   Yoshihiro Shimoda                 18 (0.0%)
   Becky Bruce                       18 (0.0%)
   Daniel Mack                       15 (0.0%)
   Todor I Mollov                    15 (0.0%)
   Guennadi Liakhovetski             14 (0.0%)
   Sascha Hauer                      14 (0.0%)
   Yauhen Kharuzhy                   9 (0.0%)
   Felix Radensky                    6 (0.0%)
   Jens Scharsig                     5 (0.0%)
   Nishanth Menon                    5 (0.0%)
   Sonic Zhang                       5 (0.0%)
   Ilya Yanok                        4 (0.0%)
   Thomas Lange                      4 (0.0%)
   Michael Lawnick                   4 (0.0%)
   Eric Schumann                     3 (0.0%)
   Emil Medve                        2 (0.0%)
   Sergey Lapin                      2 (0.0%)
   Gao Guanhua                       2 (0.0%)
   Fredrik Arnerup                   1 (0.0%)
   Rohit Hagargundgi                 1 (0.0%)
   Daniel Gorsulowski                1 (0.0%)
   Timur Tabi                        1 (0.0%)
   Peter Korsgaard                   1 (0.0%)
   Alan Carvalho de Assis            1 (0.0%)
   Laurent Gregoire                  1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Ladislav Michl                    550 (3.2%)
   Trent Piepho                      405 (2.4%)
   Matthias Fuchs                    262 (1.5%)
   Kumar Gala                        232 (1.4%)
   Dirk Behme                        103 (0.6%)
   Michael Zaidman                   55 (0.3%)
   David Gibson                      34 (0.2%)
   Kyungmin Park                     33 (0.2%)
   Adrian Hunter                     24 (0.1%)
   Kim Phillips                      24 (0.1%)
   Tom Rix                           17 (0.1%)
   Scott Wood                        10 (0.1%)
   Manikandan Pillai                 6 (0.0%)
   David Brownell                    4 (0.0%)
   Yauhen Kharuzhy                   4 (0.0%)
   Jens Scharsig                     4 (0.0%)
   Ilya Yanok                        4 (0.0%)
   Sonic Zhang                       2 (0.0%)
   Shinya Kuribayashi                1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Stefan Roese                      11 (10.6%)
   Mike Frysinger                    10 (9.6%)
   Kumar Gala                        9 (8.7%)
   Ben Warren                        8 (7.7%)
   Haavard Skinnemoen                8 (7.7%)
   Scott Wood                        7 (6.7%)
   Jean-Christophe PLAGNIOL-VILLARD  7 (6.7%)
   Andreas Pfefferle                 4 (3.8%)
   Paul Driveklepp                   4 (3.8%)
   Kim Phillips                      3 (2.9%)
   Andy Fleming                      3 (2.9%)
   Steve Sakoman                     3 (2.9%)
   Ricardo Ribalda Delgado           3 (2.9%)
   Gunnar Rangoy                     3 (2.9%)
   Remy Bohmer                       3 (2.9%)
   Wolfgang Denk                     3 (2.9%)
   Hillel Avni                       2 (1.9%)
   Dirk Behme                        1 (1.0%)
   Kyungmin Park                     1 (1.0%)
   Shinya Kuribayashi                1 (1.0%)
   Yu Liu                            1 (1.0%)
   Vivek Kutal                       1 (1.0%)
   Travis Wheatley                   1 (1.0%)
   Justin Waters                     1 (1.0%)
   Rohit Hagargundgi                 1 (1.0%)
   Sascha Hauer                      1 (1.0%)
   Olav Morken                       1 (1.0%)
   Becky Bruce                       1 (1.0%)
   Nicolas Ferre                     1 (1.0%)
   Dave Liu                          1 (1.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   David Hawkins                     1 (100.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Nobuhiro Iwamatsu                 2 (25.0%)
   Stefan Roese                      1 (12.5%)
   Sergey Lapin                      1 (12.5%)
   Mikhail Zaturenskiy               1 (12.5%)
   Paul Gortmaker                    1 (12.5%)
   Eric BENARD                       1 (12.5%)
   Heiko Schocher                    1 (12.5%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     4 (50.0%)
   Jean-Christophe PLAGNIOL-VILLARD  2 (25.0%)
   Kim Phillips                      1 (12.5%)
   Yoshihiro Shimoda                 1 (12.5%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     2 (66.7%)
   Joakim Tjernlund                  1 (33.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Guennadi Liakhovetski             2 (66.7%)
   Dave Liu                          1 (33.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Analog Devices                    100 (23.1%)
   DENX Software Engineering         83 (19.2%)
   jcrosoft                          55 (12.7%)
   (Unknown)                         51 (11.8%)
   Freescale                         44 (10.2%)
   Extreme Engineering Solutions     32 (7.4%)
   Atmel                             11 (2.5%)
   ESD Electronics                   7 (1.6%)
   Samsung                           7 (1.6%)
   Texas Instruments                 7 (1.6%)
   Graeme Russ                       6 (1.4%)
   Dirk Behme                        4 (0.9%)
   Mercury IMC Ltd.                  3 (0.7%)
   Jon Smirl                         3 (0.7%)
   Wind River                        2 (0.5%)
   Keymile                           2 (0.5%)
   Nokia                             2 (0.5%)
   Pengutronix                       2 (0.5%)
   Renesas Electronics               2 (0.5%)
   Ronetix                           2 (0.5%)
   Oce Technologies                  2 (0.5%)
   BuS Elektronik                    1 (0.2%)
   EmCraft Systems                   1 (0.2%)
   NEC                               1 (0.2%)
   Phytec                            1 (0.2%)
   Semihalf Embedded Systems         1 (0.2%)
   Barco                             1 (0.2%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   DENX Software Engineering         29338 (50.2%)
   Analog Devices                    7964 (13.6%)
   jcrosoft                          4888 (8.4%)
   Freescale                         4613 (7.9%)
   (Unknown)                         2763 (4.7%)
   Atmel                             2066 (3.5%)
   Ronetix                           1344 (2.3%)
   Graeme Russ                       1331 (2.3%)
   Oce Technologies                  1054 (1.8%)
   Semihalf Embedded Systems         788 (1.3%)
   Extreme Engineering Solutions     751 (1.3%)
   ESD Electronics                   679 (1.2%)
   Texas Instruments                 287 (0.5%)
   Samsung                           160 (0.3%)
   Dirk Behme                        148 (0.3%)
   Nokia                             118 (0.2%)
   Wind River                        53 (0.1%)
   Mercury IMC Ltd.                  26 (0.0%)
   Keymile                           25 (0.0%)
   Jon Smirl                         24 (0.0%)
   Renesas Electronics               18 (0.0%)
   Pengutronix                       14 (0.0%)
   BuS Elektronik                    5 (0.0%)
   EmCraft Systems                   4 (0.0%)
   Phytec                            3 (0.0%)
   Barco                             1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Freescale                         28 (26.9%)
   DENX Software Engineering         18 (17.3%)
   (Unknown)                         18 (17.3%)
   Analog Devices                    10 (9.6%)
   Atmel                             9 (8.7%)
   jcrosoft                          7 (6.7%)
   Oce Technologies                  3 (2.9%)
   Sakoman Inc.                      3 (2.9%)
   Universidad Autonoma de Madrid    3 (2.9%)
   Samsung                           2 (1.9%)
   Dirk Behme                        1 (1.0%)
   Pengutronix                       1 (1.0%)
   Azingo                            1 (1.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         22 (29.3%)
   Freescale                         11 (14.7%)
   DENX Software Engineering         7 (9.3%)
   Samsung                           4 (5.3%)
   Analog Devices                    3 (4.0%)
   Atmel                             3 (4.0%)
   Texas Instruments                 3 (4.0%)
   ESD Electronics                   2 (2.7%)
   Nokia                             2 (2.7%)
   jcrosoft                          1 (1.3%)
   Oce Technologies                  1 (1.3%)
   Dirk Behme                        1 (1.3%)
   Pengutronix                       1 (1.3%)
   Ronetix                           1 (1.3%)
   Graeme Russ                       1 (1.3%)
   Semihalf Embedded Systems         1 (1.3%)
   Extreme Engineering Solutions     1 (1.3%)
   Wind River                        1 (1.3%)
   Mercury IMC Ltd.                  1 (1.3%)
   Keymile                           1 (1.3%)
   Jon Smirl                         1 (1.3%)
   Renesas Electronics               1 (1.3%)
   BuS Elektronik                    1 (1.3%)
   EmCraft Systems                   1 (1.3%)
   Phytec                            1 (1.3%)
   Barco                             1 (1.3%)
   NEC                               1 (1.3%)
   ================================  =====
