:orphan:

Release Statistics for U-Boot v2014.04
======================================

* Processed 769 changesets from 109 developers

* 26 employers found

* A total of 66836 lines added, 112896 removed (delta -46060)

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

   ================================  =====
   Name                              Count
   ================================  =====
   Masahiro Yamada                   162 (21.1%)
   Stephen Warren                    56 (7.3%)
   Simon Glass                       42 (5.5%)
   Marek Vasut                       38 (4.9%)
   Tom Rini                          35 (4.6%)
   Michal Simek                      29 (3.8%)
   Alexey Brodkin                    26 (3.4%)
   Przemyslaw Marczak                24 (3.1%)
   Piotr Wilczek                     20 (2.6%)
   Fabio Estevam                     17 (2.2%)
   Łukasz Majewski                   13 (1.7%)
   York Sun                          12 (1.6%)
   Otavio Salvador                   11 (1.4%)
   Tom Warren                        9 (1.2%)
   pekon gupta                       9 (1.2%)
   Shengzhou Liu                     8 (1.0%)
   Prabhakar Kushwaha                8 (1.0%)
   Enric Balletbo i Serra            8 (1.0%)
   Darwin Rambo                      8 (1.0%)
   Stefano Babic                     7 (0.9%)
   Heiko Schocher                    7 (0.9%)
   Soren Brinkmann                   7 (0.9%)
   Valentin Longchamp                7 (0.9%)
   Haijun.Zhang                      6 (0.8%)
   Hannes Petermaier                 6 (0.8%)
   Gerhard Sittig                    6 (0.8%)
   Stefan Roese                      6 (0.8%)
   Priyanka Jain                     6 (0.8%)
   Mugunthan V N                     6 (0.8%)
   Shaveta Leekha                    5 (0.7%)
   Sonic Zhang                       5 (0.7%)
   Dan Murphy                        5 (0.7%)
   Sourav Poddar                     5 (0.7%)
   Markus Niebel                     5 (0.7%)
   Holger Brunck                     5 (0.7%)
   Marcel Ziswiler                   4 (0.5%)
   Baruch Siach                      4 (0.5%)
   Axel Lin                          4 (0.5%)
   Ian Campbell                      4 (0.5%)
   Bo Shen                           4 (0.5%)
   Dave Gerlach                      4 (0.5%)
   Ying Zhang                        4 (0.5%)
   Nishanth Menon                    4 (0.5%)
   Andreas Bießmann                  3 (0.4%)
   Albert ARIBAUD                    3 (0.4%)
   Nitin Garg                        3 (0.4%)
   Minkyu Kang                       3 (0.4%)
   Eric Nelson                       3 (0.4%)
   Pantelis Antoniou                 3 (0.4%)
   Gerlando Falauto                  3 (0.4%)
   Inha Song                         3 (0.4%)
   Tetsuyuki Kobayashi               2 (0.3%)
   Nobuhiro Iwamatsu                 2 (0.3%)
   David Feng                        2 (0.3%)
   Mela Custodio                     2 (0.3%)
   Chin Liang See                    2 (0.3%)
   Andrew Gabbasov                   2 (0.3%)
   Patrice Bouchand                  2 (0.3%)
   Vadim Bendebury                   2 (0.3%)
   Randall Spangler                  2 (0.3%)
   Dustin Byford                     2 (0.3%)
   Vasili Galka                      2 (0.3%)
   Tim Harvey                        2 (0.3%)
   Andreas Henriksson                2 (0.3%)
   poonam aggrwal                    2 (0.3%)
   Lokesh Vutla                      2 (0.3%)
   Nikhil Badola                     2 (0.3%)
   Dennis Gilmore                    2 (0.3%)
   Michael Burr                      2 (0.3%)
   Rajeshwari Shinde                 2 (0.3%)
   Siva Durga Prasad Paladugu        2 (0.3%)
   Anson Huang                       2 (0.3%)
   Rainer Boschung                   2 (0.3%)
   Vivek Gautam                      2 (0.3%)
   Jassi Brar                        2 (0.3%)
   Po Liu                            2 (0.3%)
   Linus Walleij                     2 (0.3%)
   Leo Yan                           1 (0.1%)
   Andreas Färber                    1 (0.1%)
   Roger Quadros                     1 (0.1%)
   Wolfgang Denk                     1 (0.1%)
   Matthias Fuchs                    1 (0.1%)
   Jonghwa Lee                       1 (0.1%)
   Jimmy Zhang                       1 (0.1%)
   Jagan Teki                        1 (0.1%)
   Ilya Ledvich                      1 (0.1%)
   Suresh Gupta                      1 (0.1%)
   James Hogan                       1 (0.1%)
   Daniel Schwierzeck                1 (0.1%)
   Zhao Qiang                        1 (0.1%)
   Hector Palacios                   1 (0.1%)
   Måns Rullgård                     1 (0.1%)
   Janne Grunau                      1 (0.1%)
   Lothar Felten                     1 (0.1%)
   Karicheri, Muralidharan           1 (0.1%)
   Ionut Nicu                        1 (0.1%)
   Bhupesh Sharma                    1 (0.1%)
   Christian Eggers                  1 (0.1%)
   Scott Jiang                       1 (0.1%)
   Detlev Zundel                     1 (0.1%)
   Andy Ng                           1 (0.1%)
   Aaron Wu                          1 (0.1%)
   Bob Liu                           1 (0.1%)
   Novasys Ingenierie                1 (0.1%)
   Jim Lin                           1 (0.1%)
   Ezequiel Garcia                   1 (0.1%)
   rick                              1 (0.1%)
   Satyanarayana, Sandhya            1 (0.1%)
   Ramneek Mehresh                   1 (0.1%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Marek Vasut                       71940 (44.6%)
   Masahiro Yamada                   16145 (10.0%)
   Przemyslaw Marczak                12079 (7.5%)
   Simon Glass                       11586 (7.2%)
   Jonghwa Lee                       5783 (3.6%)
   Tom Warren                        5453 (3.4%)
   Tom Rini                          3717 (2.3%)
   Alexey Brodkin                    3607 (2.2%)
   Darwin Rambo                      3167 (2.0%)
   Shengzhou Liu                     2274 (1.4%)
   Tim Harvey                        2272 (1.4%)
   Piotr Wilczek                     2223 (1.4%)
   Stefan Roese                      1927 (1.2%)
   Stephen Warren                    1893 (1.2%)
   Hannes Petermaier                 1772 (1.1%)
   Prabhakar Kushwaha                1070 (0.7%)
   Jassi Brar                        915 (0.6%)
   Michal Simek                      865 (0.5%)
   Gerhard Sittig                    854 (0.5%)
   Chin Liang See                    808 (0.5%)
   pekon gupta                       803 (0.5%)
   Soren Brinkmann                   786 (0.5%)
   Pantelis Antoniou                 640 (0.4%)
   Bo Shen                           599 (0.4%)
   Lothar Felten                     559 (0.3%)
   York Sun                          529 (0.3%)
   Albert ARIBAUD                    495 (0.3%)
   Shaveta Leekha                    450 (0.3%)
   Sonic Zhang                       420 (0.3%)
   Priyanka Jain                     398 (0.2%)
   Fabio Estevam                     338 (0.2%)
   Po Liu                            329 (0.2%)
   Dan Murphy                        316 (0.2%)
   David Feng                        306 (0.2%)
   Ying Zhang                        304 (0.2%)
   Enric Balletbo i Serra            294 (0.2%)
   Valentin Longchamp                279 (0.2%)
   Mugunthan V N                     235 (0.1%)
   Heiko Schocher                    191 (0.1%)
   Vadim Bendebury                   155 (0.1%)
   Łukasz Majewski                   143 (0.1%)
   Sourav Poddar                     142 (0.1%)
   Stefano Babic                     131 (0.1%)
   Ionut Nicu                        130 (0.1%)
   Suresh Gupta                      128 (0.1%)
   Jimmy Zhang                       118 (0.1%)
   Rajeshwari Shinde                 103 (0.1%)
   Otavio Salvador                   101 (0.1%)
   Randall Spangler                  98 (0.1%)
   rick                              85 (0.1%)
   Rainer Boschung                   82 (0.1%)
   Scott Jiang                       80 (0.0%)
   Dennis Gilmore                    74 (0.0%)
   poonam aggrwal                    72 (0.0%)
   Inha Song                         70 (0.0%)
   Axel Lin                          68 (0.0%)
   Haijun.Zhang                      65 (0.0%)
   Gerlando Falauto                  62 (0.0%)
   Patrice Bouchand                  57 (0.0%)
   Michael Burr                      53 (0.0%)
   Andreas Henriksson                49 (0.0%)
   Marcel Ziswiler                   46 (0.0%)
   Andrew Gabbasov                   42 (0.0%)
   Nishanth Menon                    40 (0.0%)
   Anson Huang                       31 (0.0%)
   Dave Gerlach                      29 (0.0%)
   Ian Campbell                      24 (0.0%)
   Markus Niebel                     23 (0.0%)
   Vivek Gautam                      22 (0.0%)
   Daniel Schwierzeck                20 (0.0%)
   Holger Brunck                     18 (0.0%)
   Janne Grunau                      18 (0.0%)
   Roger Quadros                     16 (0.0%)
   Eric Nelson                       13 (0.0%)
   Baruch Siach                      12 (0.0%)
   Bhupesh Sharma                    12 (0.0%)
   Andreas Bießmann                  11 (0.0%)
   Dustin Byford                     11 (0.0%)
   Nitin Garg                        10 (0.0%)
   Novasys Ingenierie                10 (0.0%)
   Minkyu Kang                       9 (0.0%)
   Mela Custodio                     9 (0.0%)
   Karicheri, Muralidharan           9 (0.0%)
   Matthias Fuchs                    7 (0.0%)
   Vasili Galka                      6 (0.0%)
   Linus Walleij                     6 (0.0%)
   Jagan Teki                        6 (0.0%)
   Andy Ng                           6 (0.0%)
   Ilya Ledvich                      5 (0.0%)
   Hector Palacios                   5 (0.0%)
   Aaron Wu                          5 (0.0%)
   Ramneek Mehresh                   5 (0.0%)
   Tetsuyuki Kobayashi               4 (0.0%)
   Siva Durga Prasad Paladugu        4 (0.0%)
   Måns Rullgård                     4 (0.0%)
   Ezequiel Garcia                   4 (0.0%)
   Satyanarayana, Sandhya            4 (0.0%)
   Nobuhiro Iwamatsu                 3 (0.0%)
   Nikhil Badola                     3 (0.0%)
   Leo Yan                           3 (0.0%)
   Lokesh Vutla                      2 (0.0%)
   Andreas Färber                    2 (0.0%)
   Wolfgang Denk                     2 (0.0%)
   Christian Eggers                  2 (0.0%)
   James Hogan                       1 (0.0%)
   Zhao Qiang                        1 (0.0%)
   Detlev Zundel                     1 (0.0%)
   Bob Liu                           1 (0.0%)
   Jim Lin                           1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Marek Vasut                       69052 (61.2%)
   Masahiro Yamada                   7038 (6.2%)
   Jonghwa Lee                       2169 (1.9%)
   Stefan Roese                      1843 (1.6%)
   Jassi Brar                        915 (0.8%)
   Tom Rini                          673 (0.6%)
   pekon gupta                       481 (0.4%)
   Stephen Warren                    361 (0.3%)
   Albert ARIBAUD                    252 (0.2%)
   Enric Balletbo i Serra            78 (0.1%)
   Rajeshwari Shinde                 65 (0.1%)
   Stefano Babic                     59 (0.1%)
   Vadim Bendebury                   44 (0.0%)
   Axel Lin                          43 (0.0%)
   Inha Song                         42 (0.0%)
   Vivek Gautam                      19 (0.0%)
   Daniel Schwierzeck                17 (0.0%)
   Minkyu Kang                       6 (0.0%)
   Ilya Ledvich                      4 (0.0%)
   Måns Rullgård                     3 (0.0%)
   Karicheri, Muralidharan           2 (0.0%)
   Hector Palacios                   2 (0.0%)
   Leo Yan                           2 (0.0%)
   Nobuhiro Iwamatsu                 1 (0.0%)
   Nikhil Badola                     1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Minkyu Kang                       41 (19.8%)
   Tom Warren                        25 (12.1%)
   Kyungmin Park                     20 (9.7%)
   Michal Simek                      12 (5.8%)
   Stephen Warren                    11 (5.3%)
   Pantelis Antoniou                 11 (5.3%)
   York Sun                          9 (4.3%)
   Tom Rini                          6 (2.9%)
   Nobuhiro Iwamatsu                 6 (2.9%)
   Andreas Bießmann                  6 (2.9%)
   Simon Glass                       6 (2.9%)
   poonam aggrwal                    5 (2.4%)
   Marek Vasut                       4 (1.9%)
   Pavel Herrmann                    4 (1.9%)
   Viktor Křivák                     4 (1.9%)
   Tomas Hlavacek                    4 (1.9%)
   Valentin Longchamp                4 (1.9%)
   Stefan Agner                      3 (1.4%)
   Jaehoon Chung                     3 (1.4%)
   Sonic Zhang                       3 (1.4%)
   Rommel G Custodio                 2 (1.0%)
   Thomas Chou                       2 (1.0%)
   Arpit Goel                        2 (1.0%)
   Holger Brunck                     2 (1.0%)
   Priyanka Jain                     2 (1.0%)
   Lokesh Vutla                      1 (0.5%)
   Jagannadha Sutradharudu Teki      1 (0.5%)
   Shaohui Xie                       1 (0.5%)
   Uday Hegde                        1 (0.5%)
   Stany MARCEL                      1 (0.5%)
   Kuan-Yu Kuo                       1 (0.5%)
   Bhupesh Sharma                    1 (0.5%)
   Łukasz Majewski                   1 (0.5%)
   Jimmy Zhang                       1 (0.5%)
   Prabhakar Kushwaha                1 (0.5%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   York Sun                          43 (38.7%)
   Jagannadha Sutradharudu Teki      13 (11.7%)
   Thierry Reding                    8 (7.2%)
   Simon Glass                       7 (6.3%)
   Steve Rae                         7 (6.3%)
   Tim Kryger                        7 (6.3%)
   Vadim Bendebury                   5 (4.5%)
   Tom Rini                          3 (2.7%)
   Lokesh Vutla                      3 (2.7%)
   Felipe Balbi                      2 (1.8%)
   Roger Quadros                     2 (1.8%)
   Łukasz Majewski                   1 (0.9%)
   Stefano Babic                     1 (0.9%)
   Che-Liang Chiou                   1 (0.9%)
   Andrew Chew                       1 (0.9%)
   Hung-ying Tyan                    1 (0.9%)
   Markus Mayer                      1 (0.9%)
   Sricharan R                       1 (0.9%)
   Andreas Färber                    1 (0.9%)
   Randall Spangler                  1 (0.9%)
   Dennis Gilmore                    1 (0.9%)
   Fabio Estevam                     1 (0.9%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Thierry Reding                    21 (40.4%)
   Che-Liang Chiou                   7 (13.5%)
   Simon Glass                       4 (7.7%)
   Gerhard Sittig                    4 (7.7%)
   Heiko Schocher                    3 (5.8%)
   Vadim Bendebury                   2 (3.8%)
   Łukasz Majewski                   2 (3.8%)
   Jagannadha Sutradharudu Teki      1 (1.9%)
   Andrew Chew                       1 (1.9%)
   Dennis Gilmore                    1 (1.9%)
   Stephen Warren                    1 (1.9%)
   Andreas Bießmann                  1 (1.9%)
   Marek Vasut                       1 (1.9%)
   Hyungwon Hwang                    1 (1.9%)
   Matthias Fuchs                    1 (1.9%)
   Bo Shen                           1 (1.9%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Stephen Warren                    13 (25.0%)
   Masahiro Yamada                   11 (21.2%)
   Tom Warren                        9 (17.3%)
   Simon Glass                       8 (15.4%)
   Vadim Bendebury                   2 (3.8%)
   Przemyslaw Marczak                2 (3.8%)
   Marek Vasut                       1 (1.9%)
   Andreas Färber                    1 (1.9%)
   Jimmy Zhang                       1 (1.9%)
   Stefan Roese                      1 (1.9%)
   Inha Song                         1 (1.9%)
   Hector Palacios                   1 (1.9%)
   Jim Lin                           1 (1.9%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Masahiro Yamada                   3 (14.3%)
   Simon Glass                       2 (9.5%)
   Andreas Bießmann                  2 (9.5%)
   Wolfgang Denk                     2 (9.5%)
   Heiko Schocher                    1 (4.8%)
   Łukasz Majewski                   1 (4.8%)
   Dennis Gilmore                    1 (4.8%)
   Bo Shen                           1 (4.8%)
   Tom Rini                          1 (4.8%)
   Eli Nidam                         1 (4.8%)
   Pierre AUBERT                     1 (4.8%)
   Russell King                      1 (4.8%)
   Praveen Rao                       1 (4.8%)
   Abraham Varricatt                 1 (4.8%)
   Olof Johansson                    1 (4.8%)
   Nishanth Menon                    1 (4.8%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Masahiro Yamada                   8 (38.1%)
   Stephen Warren                    5 (23.8%)
   Tom Rini                          2 (9.5%)
   Nobuhiro Iwamatsu                 2 (9.5%)
   Nishanth Menon                    1 (4.8%)
   Roger Quadros                     1 (4.8%)
   Måns Rullgård                     1 (4.8%)
   Ezequiel Garcia                   1 (4.8%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Socionext Inc.                    162 (21.1%)
   (Unknown)                         124 (16.1%)
   Freescale                         81 (10.5%)
   Samsung                           68 (8.8%)
   DENX Software Engineering         66 (8.6%)
   NVidia                            47 (6.1%)
   Google, Inc.                      44 (5.7%)
   Texas Instruments                 38 (4.9%)
   Konsulko Group                    35 (4.6%)
   AMD                               29 (3.8%)
   Keymile                           17 (2.2%)
   O.S. Systems                      11 (1.4%)
   Xilinx                            10 (1.3%)
   Broadcom                          8 (1.0%)
   Analog Devices                    6 (0.8%)
   Atmel                             4 (0.5%)
   Linaro                            4 (0.5%)
   TQ Systems                        4 (0.5%)
   Boundary Devices                  3 (0.4%)
   Renesas Electronics               2 (0.3%)
   CompuLab                          1 (0.1%)
   Digi International                1 (0.1%)
   ESD Electronics                   1 (0.1%)
   Free Electrons                    1 (0.1%)
   Marvell                           1 (0.1%)
   Novell                            1 (0.1%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   DENX Software Engineering         75046 (46.6%)
   Samsung                           20432 (12.7%)
   (Unknown)                         18319 (11.4%)
   Socionext Inc.                    16145 (10.0%)
   Google, Inc.                      11741 (7.3%)
   Freescale                         6019 (3.7%)
   Konsulko Group                    3717 (2.3%)
   Broadcom                          3167 (2.0%)
   Texas Instruments                 1596 (1.0%)
   Linaro                            921 (0.6%)
   AMD                               865 (0.5%)
   NVidia                            828 (0.5%)
   Xilinx                            796 (0.5%)
   Atmel                             599 (0.4%)
   Keymile                           441 (0.3%)
   Analog Devices                    425 (0.3%)
   O.S. Systems                      101 (0.1%)
   TQ Systems                        15 (0.0%)
   Boundary Devices                  13 (0.0%)
   ESD Electronics                   7 (0.0%)
   CompuLab                          5 (0.0%)
   Digi International                5 (0.0%)
   Free Electrons                    4 (0.0%)
   Renesas Electronics               3 (0.0%)
   Marvell                           3 (0.0%)
   Novell                            2 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Samsung                           65 (31.4%)
   (Unknown)                         38 (18.4%)
   NVidia                            37 (17.9%)
   Freescale                         21 (10.1%)
   Xilinx                            14 (6.8%)
   Texas Instruments                 7 (3.4%)
   Google, Inc.                      6 (2.9%)
   Keymile                           6 (2.9%)
   Nobuhiro Iwamatsu                 6 (2.9%)
   DENX Software Engineering         4 (1.9%)
   Analog Devices                    3 (1.4%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         38 (34.2%)
   Freescale                         17 (15.3%)
   Texas Instruments                 10 (9.0%)
   Samsung                           8 (7.2%)
   DENX Software Engineering         7 (6.3%)
   Keymile                           4 (3.6%)
   NVidia                            3 (2.7%)
   Xilinx                            3 (2.7%)
   Google, Inc.                      2 (1.8%)
   Analog Devices                    2 (1.8%)
   Linaro                            2 (1.8%)
   Socionext Inc.                    1 (0.9%)
   Konsulko Group                    1 (0.9%)
   Broadcom                          1 (0.9%)
   AMD                               1 (0.9%)
   Atmel                             1 (0.9%)
   O.S. Systems                      1 (0.9%)
   TQ Systems                        1 (0.9%)
   Boundary Devices                  1 (0.9%)
   ESD Electronics                   1 (0.9%)
   CompuLab                          1 (0.9%)
   Digi International                1 (0.9%)
   Free Electrons                    1 (0.9%)
   Renesas Electronics               1 (0.9%)
   Marvell                           1 (0.9%)
   Novell                            1 (0.9%)
   ================================  =====
