:orphan:

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

* Processed 402 changesets from 100 developers

* 31 employers found

* A total of 42673 lines added, 22618 removed (delta 20055)

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

   ================================  =====
   Name                              Count
   ================================  =====
   Mike Frysinger                    77 (10.2%)
   Kumar Gala                        69 (9.2%)
   Wolfgang Denk                     55 (7.3%)
   Steve Sakoman                     34 (4.5%)
   Minkyu Kang                       33 (4.4%)
   Stefan Roese                      28 (3.7%)
   Stefano Babic                     19 (2.5%)
   Albert Aribaud                    19 (2.5%)
   Graeme Russ                       18 (2.4%)
   Marek Vasut                       17 (2.3%)
   Nobuhiro Iwamatsu                 16 (2.1%)
   Prafulla Wadaskar                 16 (2.1%)
   Vipin KUMAR                       14 (1.9%)
   Paul Gortmaker                    13 (1.7%)
   Reinhard Meyer                    11 (1.5%)
   York Sun                          11 (1.5%)
   Sandeep Paulraj                   10 (1.3%)
   Heiko Schocher                    10 (1.3%)
   Peter Tyser                       10 (1.3%)
   Thomas Chou                       9 (1.2%)
   Ajay Kumar Gupta                  9 (1.2%)
   Becky Bruce                       9 (1.2%)
   Kim Phillips                      8 (1.1%)
   Naveen Krishna CH                 8 (1.1%)
   Kevin Morfitt                     8 (1.1%)
   Simon Kagstrom                    8 (1.1%)
   Timur Tabi                        7 (0.9%)
   Matthias Fuchs                    7 (0.9%)
   Poonam Aggrwal                    7 (0.9%)
   Matthias Kaehlcke                 7 (0.9%)
   Mingkai Hu                        7 (0.9%)
   Anatolij Gustschin                6 (0.8%)
   Daniel Gorsulowski                6 (0.8%)
   Scott Wood                        6 (0.8%)
   Tom Rix                           6 (0.8%)
   Michal Simek                      6 (0.8%)
   Frans Meulenbroeks                5 (0.7%)
   Anton Vorontsov                   5 (0.7%)
   Asen Dimov                        5 (0.7%)
   Marcel Ziswiler                   5 (0.7%)
   Thomas Weber                      4 (0.5%)
   Eric Bénard                       4 (0.5%)
   Matthias Weisser                  4 (0.5%)
   Hoan Hoang                        4 (0.5%)
   Mans Rullgard                     3 (0.4%)
   Haavard Skinnemoen                3 (0.4%)
   Nishanth Menon                    3 (0.4%)
   Michael Hennerich                 3 (0.4%)
   Prakash PM                        3 (0.4%)
   Nick Thompson                     3 (0.4%)
   Andreas Bießmann                  3 (0.4%)
   Alessandro Rubini                 3 (0.4%)
   Ladislav Michl                    3 (0.4%)
   Seunghyeon Rhee                   3 (0.4%)
   Olof Johansson                    3 (0.4%)
   Eric Millbrandt                   3 (0.4%)
   Robin Getz                        3 (0.4%)
   Detlev Zundel                     2 (0.3%)
   Daniel Hobi                       2 (0.3%)
   Lei Wen                           2 (0.3%)
   Bryan Wu                          2 (0.3%)
   Matthew McClintock                2 (0.3%)
   Roy Zang                          2 (0.3%)
   Philippe De Muyter                2 (0.3%)
   Grazvydas Ignotas                 2 (0.3%)
   Ben Warren                        2 (0.3%)
   Rupjyoti Sarmah                   2 (0.3%)
   Ilya Yanok                        2 (0.3%)
   Florian Fainelli                  2 (0.3%)
   Dipen Dudhat                      2 (0.3%)
   Fabio Estevam                     2 (0.3%)
   Joonyoung Shim                    2 (0.3%)
   Martha M Stan                     2 (0.3%)
   Werner Pfister                    2 (0.3%)
   Dirk Eibach                       2 (0.3%)
   Aneesh V                          1 (0.1%)
   Karl Beldan                       1 (0.1%)
   Michael Zaidman                   1 (0.1%)
   Terry Lv                          1 (0.1%)
   Wolfram Sang                      1 (0.1%)
   Ricardo Salveti de Araujo         1 (0.1%)
   Scott Ellis                       1 (0.1%)
   Xiangfu Liu                       1 (0.1%)
   Alexander Stein                   1 (0.1%)
   Jens Scharsig                     1 (0.1%)
   Lian Minghuan                     1 (0.1%)
   Ben Gardiner                      1 (0.1%)
   Sergei Poselenov                  1 (0.1%)
   Sergei Trofimovich                1 (0.1%)
   Li Haibo                          1 (0.1%)
   Feng Wang                         1 (0.1%)
   Stephan Linz                      1 (0.1%)
   Aaron Pace                        1 (0.1%)
   Emil Medve                        1 (0.1%)
   Vivek Mahajan                     1 (0.1%)
   Juergen Kilb                      1 (0.1%)
   Wolfgang Wegner                   1 (0.1%)
   Sergey Matyukevich                1 (0.1%)
   Michael Weiss                     1 (0.1%)
   Reinhard Meyer (-VC)              1 (0.1%)
   Remy Bohmer                       1 (0.1%)
   Felix Radensky                    1 (0.1%)
   Vitaly Kuzmichev                  1 (0.1%)
   Magnus Lilja                      1 (0.1%)
   Tom                               1 (0.1%)
   John Rigby                        1 (0.1%)
   Siddarth Gore                     1 (0.1%)
   Alexander Holler                  1 (0.1%)
   trix                              1 (0.1%)
   Sekhar Nori                       1 (0.1%)
   Dirk Behme                        1 (0.1%)
   Paul Gibson                       1 (0.1%)
   Giuseppe CONDORELLI               1 (0.1%)
   Harald Krapfenbauer               1 (0.1%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     113195 (57.1%)
   Mike Frysinger                    7489 (3.8%)
   Kumar Gala                        6977 (3.5%)
   Minkyu Kang                       6369 (3.2%)
   Graeme Russ                       5996 (3.0%)
   Vipin KUMAR                       5698 (2.9%)
   Stefan Roese                      4211 (2.1%)
   Steve Sakoman                     4182 (2.1%)
   Kevin Morfitt                     3099 (1.6%)
   Matthias Kaehlcke                 3020 (1.5%)
   Heiko Schocher                    2556 (1.3%)
   Marek Vasut                       2482 (1.3%)
   Tom Rix                           2165 (1.1%)
   Prafulla Wadaskar                 2080 (1.0%)
   Matthias Weisser                  1939 (1.0%)
   Olof Johansson                    1913 (1.0%)
   Stefano Babic                     1502 (0.8%)
   Albert Aribaud                    1311 (0.7%)
   Sandeep Paulraj                   1303 (0.7%)
   Timur Tabi                        1257 (0.6%)
   Thomas Weber                      1243 (0.6%)
   Reinhard Meyer                    1198 (0.6%)
   Thomas Chou                       1132 (0.6%)
   trix                              974 (0.5%)
   Ilya Yanok                        959 (0.5%)
   Simon Kagstrom                    925 (0.5%)
   Becky Bruce                       889 (0.4%)
   Daniel Gorsulowski                887 (0.4%)
   Michal Simek                      840 (0.4%)
   Michael Zaidman                   713 (0.4%)
   Peter Tyser                       665 (0.3%)
   Tom                               665 (0.3%)
   Siddarth Gore                     652 (0.3%)
   Paul Gortmaker                    627 (0.3%)
   York Sun                          458 (0.2%)
   Ajay Kumar Gupta                  454 (0.2%)
   Asen Dimov                        422 (0.2%)
   Harald Krapfenbauer               411 (0.2%)
   Nobuhiro Iwamatsu                 336 (0.2%)
   Naveen Krishna CH                 328 (0.2%)
   Michael Hennerich                 326 (0.2%)
   Sekhar Nori                       325 (0.2%)
   Mingkai Hu                        324 (0.2%)
   Haavard Skinnemoen                284 (0.1%)
   Kim Phillips                      269 (0.1%)
   Anatolij Gustschin                248 (0.1%)
   Martha M Stan                     239 (0.1%)
   Wolfgang Wegner                   232 (0.1%)
   Ladislav Michl                    180 (0.1%)
   Terry Lv                          177 (0.1%)
   Ben Gardiner                      176 (0.1%)
   Nick Thompson                     152 (0.1%)
   Poonam Aggrwal                    124 (0.1%)
   Nishanth Menon                    111 (0.1%)
   Eric Bénard                       103 (0.1%)
   Mans Rullgard                     99 (0.0%)
   Scott Wood                        97 (0.0%)
   Hoan Hoang                        90 (0.0%)
   Marcel Ziswiler                   82 (0.0%)
   Rupjyoti Sarmah                   78 (0.0%)
   Anton Vorontsov                   72 (0.0%)
   Ben Warren                        72 (0.0%)
   Fabio Estevam                     69 (0.0%)
   Eric Millbrandt                   64 (0.0%)
   Frans Meulenbroeks                60 (0.0%)
   Prakash PM                        52 (0.0%)
   Grazvydas Ignotas                 51 (0.0%)
   Matthias Fuchs                    47 (0.0%)
   Aneesh V                          39 (0.0%)
   Sergey Matyukevich                39 (0.0%)
   Lei Wen                           33 (0.0%)
   Philippe De Muyter                32 (0.0%)
   Dirk Behme                        28 (0.0%)
   Dirk Eibach                       26 (0.0%)
   Lian Minghuan                     25 (0.0%)
   Sergei Trofimovich                23 (0.0%)
   Ricardo Salveti de Araujo         22 (0.0%)
   Robin Getz                        19 (0.0%)
   Roy Zang                          19 (0.0%)
   Matthew McClintock                17 (0.0%)
   Scott Ellis                       16 (0.0%)
   Vitaly Kuzmichev                  15 (0.0%)
   Wolfram Sang                      14 (0.0%)
   Felix Radensky                    14 (0.0%)
   Seunghyeon Rhee                   12 (0.0%)
   Bryan Wu                          12 (0.0%)
   Joonyoung Shim                    12 (0.0%)
   Detlev Zundel                     11 (0.0%)
   Vivek Mahajan                     10 (0.0%)
   Magnus Lilja                      10 (0.0%)
   Alessandro Rubini                 9 (0.0%)
   Daniel Hobi                       9 (0.0%)
   Dipen Dudhat                      8 (0.0%)
   Andreas Bießmann                  7 (0.0%)
   Xiangfu Liu                       7 (0.0%)
   Alexander Holler                  7 (0.0%)
   Florian Fainelli                  6 (0.0%)
   Werner Pfister                    5 (0.0%)
   Michael Weiss                     5 (0.0%)
   Jens Scharsig                     4 (0.0%)
   Feng Wang                         4 (0.0%)
   Stephan Linz                      4 (0.0%)
   Reinhard Meyer (-VC)              3 (0.0%)
   Giuseppe CONDORELLI               3 (0.0%)
   Karl Beldan                       1 (0.0%)
   Alexander Stein                   1 (0.0%)
   Sergei Poselenov                  1 (0.0%)
   Li Haibo                          1 (0.0%)
   Aaron Pace                        1 (0.0%)
   Emil Medve                        1 (0.0%)
   Juergen Kilb                      1 (0.0%)
   Remy Bohmer                       1 (0.0%)
   John Rigby                        1 (0.0%)
   Paul Gibson                       1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     105068 (74.7%)
   Graeme Russ                       4244 (3.0%)
   Thomas Chou                       979 (0.7%)
   Kevin Morfitt                     867 (0.6%)
   Michal Simek                      797 (0.6%)
   Michael Zaidman                   612 (0.4%)
   Peter Tyser                       383 (0.3%)
   Becky Bruce                       206 (0.1%)
   Ladislav Michl                    172 (0.1%)
   Nishanth Menon                    104 (0.1%)
   Fabio Estevam                     68 (0.0%)
   Ben Warren                        48 (0.0%)
   Marcel Ziswiler                   46 (0.0%)
   Mans Rullgard                     42 (0.0%)
   Scott Wood                        14 (0.0%)
   Grazvydas Ignotas                 13 (0.0%)
   Seunghyeon Rhee                   7 (0.0%)
   Jens Scharsig                     3 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Sandeep Paulraj                   54 (18.4%)
   Kumar Gala                        54 (18.4%)
   Ben Warren                        30 (10.2%)
   Stefan Roese                      19 (6.5%)
   Minkyu Kang                       19 (6.5%)
   Wolfgang Denk                     13 (4.4%)
   Mike Frysinger                    13 (4.4%)
   Kyungmin Park                     11 (3.8%)
   Scott McNutt                      8 (2.7%)
   Kim Phillips                      6 (2.0%)
   Reinhard Meyer                    6 (2.0%)
   Scott Wood                        5 (1.7%)
   Roy Zang                          4 (1.4%)
   Aneesh V                          4 (1.4%)
   Steve Sakoman                     4 (1.4%)
   Detlev Zundel                     3 (1.0%)
   Becky Bruce                       2 (0.7%)
   Emil Medve                        2 (0.7%)
   Cliff Cai                         2 (0.7%)
   Jaehoon Chung                     2 (0.7%)
   Ed Swarthout                      2 (0.7%)
   Dave Liu                          2 (0.7%)
   HeungJun, Kim                     2 (0.7%)
   Eric Bénard                       2 (0.7%)
   York Sun                          2 (0.7%)
   Timur Tabi                        2 (0.7%)
   Shinya Kuribayashi                1 (0.3%)
   Klaus Heydeck                     1 (0.3%)
   Ashish Kalra                      1 (0.3%)
   Stuart Yoder                      1 (0.3%)
   Lan Chunhe-B25806                 1 (0.3%)
   Andy Fleming                      1 (0.3%)
   Li Yang                           1 (0.3%)
   Dave Mitchell                     1 (0.3%)
   Vaibhav Hiremath                  1 (0.3%)
   Sanjeev Premi                     1 (0.3%)
   Sudhakar Rajashekhara             1 (0.3%)
   Kevin Morfitt                     1 (0.3%)
   Stephen Neuendorffer              1 (0.3%)
   Gao Guanhua                       1 (0.3%)
   Vivek Mahajan                     1 (0.3%)
   Dipen Dudhat                      1 (0.3%)
   Scott Ellis                       1 (0.3%)
   Mingkai Hu                        1 (0.3%)
   Prafulla Wadaskar                 1 (0.3%)
   Tom Rix                           1 (0.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Steve Sakoman                     3 (15.0%)
   Thomas Chou                       3 (15.0%)
   Stefan Roese                      1 (5.0%)
   Minkyu Kang                       1 (5.0%)
   Wolfgang Denk                     1 (5.0%)
   Detlev Zundel                     1 (5.0%)
   Peter Tyser                       1 (5.0%)
   Ian Abbott                        1 (5.0%)
   Philip Balister                   1 (5.0%)
   Andreas Bießmann                  1 (5.0%)
   Magnus Lilja                      1 (5.0%)
   Hoan Hoang                        1 (5.0%)
   Ben Gardiner                      1 (5.0%)
   Anatolij Gustschin                1 (5.0%)
   Heiko Schocher                    1 (5.0%)
   Thomas Weber                      1 (5.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Mike Frysinger                    5 (25.0%)
   Grazvydas Ignotas                 2 (10.0%)
   Steve Sakoman                     1 (5.0%)
   Thomas Chou                       1 (5.0%)
   Stefan Roese                      1 (5.0%)
   Wolfgang Denk                     1 (5.0%)
   Reinhard Meyer                    1 (5.0%)
   Aneesh V                          1 (5.0%)
   Timur Tabi                        1 (5.0%)
   Kevin Morfitt                     1 (5.0%)
   Michael Zaidman                   1 (5.0%)
   Marcel Ziswiler                   1 (5.0%)
   Seunghyeon Rhee                   1 (5.0%)
   Feng Wang                         1 (5.0%)
   Stefano Babic                     1 (5.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     2 (50.0%)
   York Sun                          1 (25.0%)
   Vivi Li                           1 (25.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Mike Frysinger                    1 (25.0%)
   Kumar Gala                        1 (25.0%)
   Kim Phillips                      1 (25.0%)
   Anton Vorontsov                   1 (25.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         144 (19.1%)
   DENX Software Engineering         136 (18.0%)
   Freescale                         134 (17.8%)
   Analog Devices                    85 (11.3%)
   Samsung                           41 (5.4%)
   Sakoman Inc.                      34 (4.5%)
   Texas Instruments                 25 (3.3%)
   Wind River                        20 (2.7%)
   Graeme Russ                       18 (2.4%)
   Marvell                           16 (2.1%)
   ST Microelectronics               15 (2.0%)
   ESD Electronics                   13 (1.7%)
   Renesas Electronics               13 (1.7%)
   Extreme Engineering Solutions     10 (1.3%)
   MontaVista                        6 (0.8%)
   Xilinx                            6 (0.8%)
   Ronetix                           5 (0.7%)
   Atmel                             3 (0.4%)
   EmCraft Systems                   3 (0.4%)
   General Electric                  3 (0.4%)
   IBM                               3 (0.4%)
   Nobuhiro Iwamatsu                 3 (0.4%)
   Funky                             3 (0.4%)
   AMCC                              2 (0.3%)
   Guntermann & Drunck               2 (0.3%)
   Macq Electronique                 2 (0.3%)
   Silicon Turnkey Express           2 (0.3%)
   Gentoo                            1 (0.1%)
   Harris Corporation                1 (0.1%)
   Pengutronix                       1 (0.1%)
   Phytec                            1 (0.1%)
   Dirk Behme                        1 (0.1%)
   Oce Technologies                  1 (0.1%)
   Grazvydas Ignotas                 1 (0.1%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   DENX Software Engineering         124158 (62.6%)
   (Unknown)                         17850 (9.0%)
   Freescale                         10652 (5.4%)
   Analog Devices                    7846 (4.0%)
   Samsung                           6695 (3.4%)
   Graeme Russ                       5996 (3.0%)
   ST Microelectronics               5701 (2.9%)
   Sakoman Inc.                      4182 (2.1%)
   Wind River                        3766 (1.9%)
   Texas Instruments                 2239 (1.1%)
   Marvell                           2075 (1.0%)
   IBM                               1913 (1.0%)
   EmCraft Systems                   960 (0.5%)
   ESD Electronics                   934 (0.5%)
   Xilinx                            840 (0.4%)
   Extreme Engineering Solutions     665 (0.3%)
   Ronetix                           422 (0.2%)
   Atmel                             284 (0.1%)
   Silicon Turnkey Express           239 (0.1%)
   Renesas Electronics               198 (0.1%)
   General Electric                  152 (0.1%)
   Nobuhiro Iwamatsu                 138 (0.1%)
   MontaVista                        87 (0.0%)
   AMCC                              78 (0.0%)
   Funky                             40 (0.0%)
   Macq Electronique                 32 (0.0%)
   Dirk Behme                        28 (0.0%)
   Guntermann & Drunck               26 (0.0%)
   Grazvydas Ignotas                 25 (0.0%)
   Gentoo                            23 (0.0%)
   Pengutronix                       14 (0.0%)
   Harris Corporation                4 (0.0%)
   Phytec                            1 (0.0%)
   Oce Technologies                  1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Freescale                         90 (30.7%)
   Texas Instruments                 61 (20.8%)
   (Unknown)                         43 (14.7%)
   DENX Software Engineering         35 (11.9%)
   Samsung                           34 (11.6%)
   Analog Devices                    15 (5.1%)
   Psyent                            8 (2.7%)
   Sakoman Inc.                      4 (1.4%)
   Wind River                        1 (0.3%)
   Marvell                           1 (0.3%)
   Xilinx                            1 (0.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         49 (40.8%)
   Freescale                         15 (12.5%)
   DENX Software Engineering         7 (5.8%)
   Texas Instruments                 6 (5.0%)
   Analog Devices                    4 (3.3%)
   Samsung                           3 (2.5%)
   Wind River                        3 (2.5%)
   Marvell                           2 (1.7%)
   ST Microelectronics               2 (1.7%)
   EmCraft Systems                   2 (1.7%)
   ESD Electronics                   2 (1.7%)
   MontaVista                        2 (1.7%)
   Funky                             2 (1.7%)
   Sakoman Inc.                      1 (0.8%)
   Xilinx                            1 (0.8%)
   Graeme Russ                       1 (0.8%)
   IBM                               1 (0.8%)
   Extreme Engineering Solutions     1 (0.8%)
   Ronetix                           1 (0.8%)
   Atmel                             1 (0.8%)
   Silicon Turnkey Express           1 (0.8%)
   Renesas Electronics               1 (0.8%)
   General Electric                  1 (0.8%)
   Nobuhiro Iwamatsu                 1 (0.8%)
   AMCC                              1 (0.8%)
   Macq Electronique                 1 (0.8%)
   Dirk Behme                        1 (0.8%)
   Guntermann & Drunck               1 (0.8%)
   Grazvydas Ignotas                 1 (0.8%)
   Gentoo                            1 (0.8%)
   Pengutronix                       1 (0.8%)
   Harris Corporation                1 (0.8%)
   Phytec                            1 (0.8%)
   Oce Technologies                  1 (0.8%)
   ================================  =====
