:orphan:

Release Statistics for U-Boot v2013.10
======================================

* Processed 710 csets from 135 developers

* 28 employers found

* A total of 55489 lines added, 119445 removed (delta -63956)

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

   ================================  =====
   Name                              Count
   ================================  =====
   Tom Rini                          61 (8.6%)
   Jagannadha Sutradharudu Teki      48 (6.8%)
   Marek Vasut                       37 (5.2%)
   Gabor Juhos                       29 (4.1%)
   Heiko Schocher                    27 (3.8%)
   Fabio Estevam                     21 (3.0%)
   York Sun                          18 (2.5%)
   Masahiro Yamada                   18 (2.5%)
   Bo Shen                           17 (2.4%)
   Wolfgang Denk                     17 (2.4%)
   Rob Herring                       17 (2.4%)
   Axel Lin                          13 (1.8%)
   Łukasz Majewski                   12 (1.7%)
   Lokesh Vutla                      12 (1.7%)
   Dan Murphy                        11 (1.5%)
   Stephen Warren                    11 (1.5%)
   Dirk Eibach                       11 (1.5%)
   Paul Burton                       10 (1.4%)
   Michal Simek                      9 (1.3%)
   Daniel Schwierzeck                9 (1.3%)
   Eric Nelson                       9 (1.3%)
   Andre Przywara                    9 (1.3%)
   Ying Zhang                        9 (1.3%)
   Simon Glass                       8 (1.1%)
   Piotr Wilczek                     7 (1.0%)
   Enric Balletbo i Serra            7 (1.0%)
   Stefano Babic                     7 (1.0%)
   Wu, Josh                          7 (1.0%)
   ken kuo                           7 (1.0%)
   Holger Brunck                     6 (0.8%)
   Jeroen Hofstee                    6 (0.8%)
   Nishanth Menon                    6 (0.8%)
   Kuo-Jung Su                       6 (0.8%)
   Kees Cook                         6 (0.8%)
   Justin Waters                     6 (0.8%)
   Mugunthan V N                     6 (0.8%)
   Dani Krishna Mohan                5 (0.7%)
   Robert P. J. Day                  5 (0.7%)
   Taras Kondratiuk                  5 (0.7%)
   Jagan Teki                        4 (0.6%)
   Rajeshwari Shinde                 4 (0.6%)
   Chin Liang See                    4 (0.6%)
   Otavio Salvador                   4 (0.6%)
   Shaohui Xie                       4 (0.6%)
   Stefan Roese                      4 (0.6%)
   Shaveta Leekha                    4 (0.6%)
   Liu Gang                          4 (0.6%)
   Albert ARIBAUD                    3 (0.4%)
   Poddar, Sourav                    3 (0.4%)
   Matt Porter                       3 (0.4%)
   Priyanka Jain                     3 (0.4%)
   Thierry Reding                    3 (0.4%)
   Afzal Mohammed                    3 (0.4%)
   Steve Kipisz                      3 (0.4%)
   Mischa Jonker                     3 (0.4%)
   Oleksandr Tyshchenko              3 (0.4%)
   trem                              3 (0.4%)
   Chander Kashyap                   3 (0.4%)
   Robert Winkler                    3 (0.4%)
   Jim Lin                           3 (0.4%)
   TENART Antoine                    3 (0.4%)
   Roy Zang                          3 (0.4%)
   Jaehoon Chung                     2 (0.3%)
   Markus Niebel                     2 (0.3%)
   Andrew Murray                     2 (0.3%)
   Javier Martinez Canillas          2 (0.3%)
   Julius Werner                     2 (0.3%)
   Minkyu Kang                       2 (0.3%)
   Joel Fernandes                    2 (0.3%)
   Oliver Metz                       2 (0.3%)
   Pardeep Kumar Singla              2 (0.3%)
   Andreas Bießmann                  2 (0.3%)
   Roger Meier                       2 (0.3%)
   Jens Scharsig (BuS Elektronik)    2 (0.3%)
   Lubomir Popov                     2 (0.3%)
   Przemyslaw Marczak                2 (0.3%)
   Gerlando Falauto                  2 (0.3%)
   Andreas Wass                      2 (0.3%)
   Shengzhou Liu                     2 (0.3%)
   Shruti Kanetkar                   2 (0.3%)
   Prabhakar Kushwaha                2 (0.3%)
   Matthias Fuchs                    2 (0.3%)
   Chunhe Lan                        2 (0.3%)
   ramneek mehresh                   2 (0.3%)
   Mingkai Hu                        2 (0.3%)
   Nikita Kiryanov                   2 (0.3%)
   Alison Wang                       2 (0.3%)
   Scott Wood                        1 (0.1%)
   Timo Herbrecher                   1 (0.1%)
   Steven Falco                      1 (0.1%)
   Andreas Huber                     1 (0.1%)
   Lars Poeschel                     1 (0.1%)
   Pierre Aubert                     1 (0.1%)
   Troy Kisky                        1 (0.1%)
   Juhyun (Justin) Oh                1 (0.1%)
   Hector Palacios                   1 (0.1%)
   Philip, Avinash                   1 (0.1%)
   Greg Guyotte                      1 (0.1%)
   Nobuhiro Iwamatsu                 1 (0.1%)
   Mark Langsdorf                    1 (0.1%)
   Frederic Leroy                    1 (0.1%)
   Pantelis Antoniou                 1 (0.1%)
   Elie De Brauwer                   1 (0.1%)
   Andrew Gabbasov                   1 (0.1%)
   Tang Yuantian                     1 (0.1%)
   Henrik Nordström                  1 (0.1%)
   Richard Gibbs                     1 (0.1%)
   Jack Mitchell                     1 (0.1%)
   Thomas Chou                       1 (0.1%)
   SARTRE Leo                        1 (0.1%)
   Inderpal Singh                    1 (0.1%)
   Amaury Pouly                      1 (0.1%)
   Phil Sutter                       1 (0.1%)
   Николай Пузанов                   1 (0.1%)
   Bhupesh Sharma                    1 (0.1%)
   Paul B. Henson                    1 (0.1%)
   Angus Ainslie                     1 (0.1%)
   Naumann Andreas                   1 (0.1%)
   Ash Charles                       1 (0.1%)
   Steve Sakoman                     1 (0.1%)
   Po Liu                            1 (0.1%)
   Christian Gmeiner                 1 (0.1%)
   Donghwa Lee                       1 (0.1%)
   Soren Brinkmann                   1 (0.1%)
   Hyungwon Hwang                    1 (0.1%)
   James Yang                        1 (0.1%)
   Minghuan Lian                     1 (0.1%)
   Haijun.Zhang                      1 (0.1%)
   Xie Xiaobo                        1 (0.1%)
   Andes                             1 (0.1%)
   Roger Quadros                     1 (0.1%)
   Christian Riesch                  1 (0.1%)
   Dinh Nguyen                       1 (0.1%)
   Dirk Behme                        1 (0.1%)
   naveen krishna chatradhi          1 (0.1%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     98751 (62.8%)
   Heiko Schocher                    8452 (5.4%)
   Marek Vasut                       7578 (4.8%)
   Jagannadha Sutradharudu Teki      4007 (2.5%)
   Albert ARIBAUD                    3987 (2.5%)
   Dirk Eibach                       2312 (1.5%)
   Bo Shen                           2047 (1.3%)
   Masahiro Yamada                   1715 (1.1%)
   York Sun                          1714 (1.1%)
   Piotr Wilczek                     1691 (1.1%)
   trem                              1599 (1.0%)
   TENART Antoine                    1531 (1.0%)
   Fabio Estevam                     1519 (1.0%)
   Tom Rini                          1472 (0.9%)
   Matthias Fuchs                    1453 (0.9%)
   Lokesh Vutla                      1390 (0.9%)
   Xie Xiaobo                        1180 (0.8%)
   Gabor Juhos                       1172 (0.7%)
   Mingkai Hu                        1139 (0.7%)
   Ying Zhang                        799 (0.5%)
   Dan Murphy                        683 (0.4%)
   Kuo-Jung Su                       542 (0.3%)
   Andre Przywara                    522 (0.3%)
   Stefano Babic                     473 (0.3%)
   Shaveta Leekha                    464 (0.3%)
   Chander Kashyap                   457 (0.3%)
   Dani Krishna Mohan                443 (0.3%)
   Paul Burton                       419 (0.3%)
   Chin Liang See                    397 (0.3%)
   Andreas Wass                      381 (0.2%)
   Roger Meier                       376 (0.2%)
   Kees Cook                         366 (0.2%)
   ken kuo                           361 (0.2%)
   Matt Porter                       355 (0.2%)
   Steve Kipisz                      320 (0.2%)
   Simon Glass                       290 (0.2%)
   Daniel Schwierzeck                248 (0.2%)
   Mugunthan V N                     235 (0.1%)
   Wu, Josh                          226 (0.1%)
   Hyungwon Hwang                    193 (0.1%)
   Greg Guyotte                      192 (0.1%)
   Rob Herring                       188 (0.1%)
   Prabhakar Kushwaha                169 (0.1%)
   Pardeep Kumar Singla              162 (0.1%)
   Philip, Avinash                   161 (0.1%)
   Shaohui Xie                       159 (0.1%)
   Łukasz Majewski                   126 (0.1%)
   Afzal Mohammed                    126 (0.1%)
   Stephen Warren                    121 (0.1%)
   Julius Werner                     113 (0.1%)
   Rajeshwari Shinde                 112 (0.1%)
   Michal Simek                      110 (0.1%)
   ramneek mehresh                   106 (0.1%)
   Poddar, Sourav                    102 (0.1%)
   Po Liu                            100 (0.1%)
   Chunhe Lan                        91 (0.1%)
   Alison Wang                       89 (0.1%)
   Enric Balletbo i Serra            84 (0.1%)
   Eric Nelson                       74 (0.0%)
   Justin Waters                     66 (0.0%)
   Donghwa Lee                       66 (0.0%)
   Priyanka Jain                     63 (0.0%)
   Haijun.Zhang                      63 (0.0%)
   Nishanth Menon                    62 (0.0%)
   Phil Sutter                       62 (0.0%)
   Axel Lin                          61 (0.0%)
   Naumann Andreas                   60 (0.0%)
   Jagan Teki                        54 (0.0%)
   Taras Kondratiuk                  53 (0.0%)
   Stefan Roese                      53 (0.0%)
   Roy Zang                          51 (0.0%)
   Bhupesh Sharma                    51 (0.0%)
   Lubomir Popov                     48 (0.0%)
   Oliver Metz                       45 (0.0%)
   Robert P. J. Day                  44 (0.0%)
   Shruti Kanetkar                   43 (0.0%)
   Steven Falco                      42 (0.0%)
   Przemyslaw Marczak                41 (0.0%)
   Jeroen Hofstee                    39 (0.0%)
   Jim Lin                           36 (0.0%)
   Minkyu Kang                       34 (0.0%)
   Jens Scharsig (BuS Elektronik)    33 (0.0%)
   Inderpal Singh                    32 (0.0%)
   Liu Gang                          31 (0.0%)
   Oleksandr Tyshchenko              28 (0.0%)
   Javier Martinez Canillas          27 (0.0%)
   Joel Fernandes                    27 (0.0%)
   Robert Winkler                    23 (0.0%)
   Angus Ainslie                     20 (0.0%)
   Andrew Murray                     19 (0.0%)
   Holger Brunck                     17 (0.0%)
   Shengzhou Liu                     15 (0.0%)
   Roger Quadros                     15 (0.0%)
   Jaehoon Chung                     14 (0.0%)
   Gerlando Falauto                  14 (0.0%)
   Nobuhiro Iwamatsu                 14 (0.0%)
   Thierry Reding                    13 (0.0%)
   Jack Mitchell                     13 (0.0%)
   Minghuan Lian                     12 (0.0%)
   Andreas Bießmann                  11 (0.0%)
   Christian Riesch                  11 (0.0%)
   Mischa Jonker                     8 (0.0%)
   Ash Charles                       8 (0.0%)
   Otavio Salvador                   7 (0.0%)
   Steve Sakoman                     7 (0.0%)
   Markus Niebel                     6 (0.0%)
   Hector Palacios                   6 (0.0%)
   Nikita Kiryanov                   5 (0.0%)
   Scott Wood                        5 (0.0%)
   Troy Kisky                        4 (0.0%)
   Andrew Gabbasov                   4 (0.0%)
   Richard Gibbs                     4 (0.0%)
   Soren Brinkmann                   4 (0.0%)
   Juhyun (Justin) Oh                3 (0.0%)
   Elie De Brauwer                   3 (0.0%)
   Lars Poeschel                     2 (0.0%)
   Mark Langsdorf                    2 (0.0%)
   Pantelis Antoniou                 2 (0.0%)
   Tang Yuantian                     2 (0.0%)
   SARTRE Leo                        2 (0.0%)
   Amaury Pouly                      2 (0.0%)
   Dirk Behme                        2 (0.0%)
   naveen krishna chatradhi          2 (0.0%)
   Timo Herbrecher                   1 (0.0%)
   Andreas Huber                     1 (0.0%)
   Pierre Aubert                     1 (0.0%)
   Frederic Leroy                    1 (0.0%)
   Henrik Nordström                  1 (0.0%)
   Thomas Chou                       1 (0.0%)
   Николай Пузанов                   1 (0.0%)
   Paul B. Henson                    1 (0.0%)
   Christian Gmeiner                 1 (0.0%)
   James Yang                        1 (0.0%)
   Andes                             1 (0.0%)
   Dinh Nguyen                       1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Wolfgang Denk                     89188 (74.7%)
   Albert ARIBAUD                    2630 (2.2%)
   Masahiro Yamada                   1623 (1.4%)
   Matthias Fuchs                    1431 (1.2%)
   Fabio Estevam                     852 (0.7%)
   Jagannadha Sutradharudu Teki      846 (0.7%)
   Roger Meier                       334 (0.3%)
   Stephen Warren                    35 (0.0%)
   Minkyu Kang                       28 (0.0%)
   Axel Lin                          20 (0.0%)
   Nobuhiro Iwamatsu                 13 (0.0%)
   Phil Sutter                       8 (0.0%)
   Christian Riesch                  8 (0.0%)
   Hector Palacios                   3 (0.0%)
   Shruti Kanetkar                   1 (0.0%)
   Markus Niebel                     1 (0.0%)
   Juhyun (Justin) Oh                1 (0.0%)
   SARTRE Leo                        1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Andreas Bießmann                  19 (12.5%)
   Tom Rini                          16 (10.5%)
   Minkyu Kang                       12 (7.9%)
   Stefan Roese                      12 (7.9%)
   Kyungmin Park                     11 (7.2%)
   Jagannadha Sutradharudu Teki      10 (6.6%)
   Simon Glass                       7 (4.6%)
   Michal Simek                      6 (3.9%)
   York Sun                          6 (3.9%)
   Sonic Zhang                       4 (2.6%)
   Gabor Juhos                       4 (2.6%)
   Eric Jarrige                      3 (2.0%)
   Tom Warren                        3 (2.0%)
   Anatolij Gustschin                3 (2.0%)
   Poddar, Sourav                    3 (2.0%)
   Bo Shen                           3 (2.0%)
   Andes                             2 (1.3%)
   Zhao Chenhui                      2 (1.3%)
   Manish Jaggi                      2 (1.3%)
   Kim Phillips                      2 (1.3%)
   Inderpal Singh                    2 (1.3%)
   Roger Meier                       1 (0.7%)
   Ash Charles                       1 (0.7%)
   Nicolas Colombain                 1 (0.7%)
   Jason Liu                         1 (0.7%)
   Edgar E. Iglesias                 1 (0.7%)
   Samuel Egli                       1 (0.7%)
   Jerry Huang                       1 (0.7%)
   Michael Johnston                  1 (0.7%)
   Scott Jiang                       1 (0.7%)
   Naveen Krishna Chatradhi          1 (0.7%)
   Pantelis Antoniou                 1 (0.7%)
   Donghwa Lee                       1 (0.7%)
   Minghuan Lian                     1 (0.7%)
   Taras Kondratiuk                  1 (0.7%)
   Po Liu                            1 (0.7%)
   Mugunthan V N                     1 (0.7%)
   Ying Zhang                        1 (0.7%)
   Lokesh Vutla                      1 (0.7%)
   Heiko Schocher                    1 (0.7%)
   Marek Vasut                       1 (0.7%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Jagannadha Sutradharudu Teki      11 (25.0%)
   Peter Korsgaard                   8 (18.2%)
   Tom Rini                          7 (15.9%)
   Javier Martinez Canillas          6 (13.6%)
   Pavel Machek                      5 (11.4%)
   Otavio Salvador                   2 (4.5%)
   Łukasz Majewski                   2 (4.5%)
   Stephen Warren                    1 (2.3%)
   Thierry Reding                    1 (2.3%)
   Kuo-Jung Su                       1 (2.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Heiko Schocher                    6 (26.1%)
   Stephen Warren                    2 (8.7%)
   Luka Perkov                       2 (8.7%)
   Holger Brunck                     2 (8.7%)
   Stefan Roese                      1 (4.3%)
   Marek Vasut                       1 (4.3%)
   Hector Palacios                   1 (4.3%)
   Aparna Balasubramanian            1 (4.3%)
   Chris Packham                     1 (4.3%)
   Enric Balletbo i Serra            1 (4.3%)
   Nishanth Menon                    1 (4.3%)
   Oliver Metz                       1 (4.3%)
   Eric Nelson                       1 (4.3%)
   Stefano Babic                     1 (4.3%)
   Dan Murphy                        1 (4.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Heiko Schocher                    4 (17.4%)
   Tom Rini                          3 (13.0%)
   Lokesh Vutla                      3 (13.0%)
   Fabio Estevam                     3 (13.0%)
   Oliver Metz                       2 (8.7%)
   Jagannadha Sutradharudu Teki      1 (4.3%)
   Łukasz Majewski                   1 (4.3%)
   Thierry Reding                    1 (4.3%)
   Simon Glass                       1 (4.3%)
   Masahiro Yamada                   1 (4.3%)
   Lars Poeschel                     1 (4.3%)
   Shaohui Xie                       1 (4.3%)
   Dirk Eibach                       1 (4.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Hector Palacios                   1 (20.0%)
   Steven Falco                      1 (20.0%)
   Stephen MacMahon                  1 (20.0%)
   Robert Nelson                     1 (20.0%)
   Pardeep Kumar Singla              1 (20.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   Fabio Estevam                     2 (40.0%)
   Tom Rini                          1 (20.0%)
   Nishanth Menon                    1 (20.0%)
   Michal Simek                      1 (20.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         156 (22.0%)
   DENX Software Engineering         92 (13.0%)
   Freescale                         90 (12.7%)
   Konsulko Group                    61 (8.6%)
   Texas Instruments                 54 (7.6%)
   Xilinx                            54 (7.6%)
   Samsung                           36 (5.1%)
   Atmel                             22 (3.1%)
   Calxeda                           19 (2.7%)
   Socionext Inc.                    18 (2.5%)
   Linaro                            16 (2.3%)
   NVidia                            16 (2.3%)
   Boundary Devices                  13 (1.8%)
   Guntermann & Drunck               11 (1.5%)
   MIPS                              10 (1.4%)
   Keymile                           9 (1.3%)
   AMD                               8 (1.1%)
   Google, Inc.                      8 (1.1%)
   O.S. Systems                      4 (0.6%)
   BuS Elektronik                    2 (0.3%)
   CompuLab                          2 (0.3%)
   ESD Electronics                   2 (0.3%)
   TQ Systems                        2 (0.3%)
   ACM                               1 (0.1%)
   Bosch                             1 (0.1%)
   Digi International                1 (0.1%)
   Renesas Electronics               1 (0.1%)
   Sakoman Inc.                      1 (0.1%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   DENX Software Engineering         115307 (73.3%)
   (Unknown)                         11899 (7.6%)
   Freescale                         8028 (5.1%)
   Xilinx                            4070 (2.6%)
   Texas Instruments                 3268 (2.1%)
   Samsung                           2720 (1.7%)
   Guntermann & Drunck               2312 (1.5%)
   Atmel                             2271 (1.4%)
   Socionext Inc.                    1715 (1.1%)
   Konsulko Group                    1472 (0.9%)
   ESD Electronics                   1453 (0.9%)
   Linaro                            1366 (0.9%)
   MIPS                              419 (0.3%)
   Google, Inc.                      290 (0.2%)
   Calxeda                           194 (0.1%)
   NVidia                            169 (0.1%)
   AMD                               105 (0.1%)
   Boundary Devices                  101 (0.1%)
   BuS Elektronik                    33 (0.0%)
   Keymile                           32 (0.0%)
   Renesas Electronics               14 (0.0%)
   O.S. Systems                      7 (0.0%)
   Sakoman Inc.                      7 (0.0%)
   TQ Systems                        6 (0.0%)
   Digi International                6 (0.0%)
   CompuLab                          5 (0.0%)
   Bosch                             2 (0.0%)
   ACM                               1 (0.0%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         32 (21.1%)
   Samsung                           25 (16.4%)
   Texas Instruments                 22 (14.5%)
   Freescale                         18 (11.8%)
   DENX Software Engineering         17 (11.2%)
   Xilinx                            17 (11.2%)
   Google, Inc.                      7 (4.6%)
   Analog Devices                    4 (2.6%)
   Atmel                             3 (2.0%)
   NVidia                            3 (2.0%)
   Linaro                            2 (1.3%)
   Siemens                           2 (1.3%)
   ================================  =====


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

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         50 (36.2%)
   Freescale                         24 (17.4%)
   Texas Instruments                 12 (8.7%)
   Samsung                           9 (6.5%)
   DENX Software Engineering         5 (3.6%)
   Xilinx                            4 (2.9%)
   Linaro                            4 (2.9%)
   NVidia                            3 (2.2%)
   Calxeda                           3 (2.2%)
   Boundary Devices                  3 (2.2%)
   Keymile                           3 (2.2%)
   Atmel                             2 (1.4%)
   Google, Inc.                      1 (0.7%)
   Guntermann & Drunck               1 (0.7%)
   Socionext Inc.                    1 (0.7%)
   Konsulko Group                    1 (0.7%)
   ESD Electronics                   1 (0.7%)
   MIPS                              1 (0.7%)
   AMD                               1 (0.7%)
   BuS Elektronik                    1 (0.7%)
   Renesas Electronics               1 (0.7%)
   O.S. Systems                      1 (0.7%)
   Sakoman Inc.                      1 (0.7%)
   TQ Systems                        1 (0.7%)
   Digi International                1 (0.7%)
   CompuLab                          1 (0.7%)
   Bosch                             1 (0.7%)
   ACM                               1 (0.7%)
   ================================  =====
