Git project statistic tool

Python based, requires Python 2.6+

Works OOTB on Mac

Installation

  • Download TAR from Github
  • unzipped to /opt

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    ➜  ll /opt/gitinspector-0.3.2
    total 52K
    -rw-r--r--  1 miro  999 Jul 29  2013 DESCRIPTION.txt
    -rw-r--r--  1 miro  32K Jun 14  2013 LICENSE.txt
    -rw-r--r--  1 miro   78 Jul  2  2013 MANIFEST.in
    -rw-r--r--  1 miro  681 Jan 13  2014 README.txt
    drwxr-xr-x 45 miro 1.5K Mar 20  2015 gitinspector
    -rw-r--r--  1 miro 1.9K Jan 14  2014 setup.py
    -rw-r--r--  1 miro  110 Jul 27  2013 stdeb.cfg
  • create symlink from ~/bin (or from whatever directory on $PATH)

    1
    2
    3
    4
    
    ln -s /opt/gitinspector-0.3.2/gitinspector/gitinspector.py ~/bin/gitinspector.py
      
    ➜  ~  ll ~/bin | grep gitin
    lrwxr-xr-x 1 miro   52 Mar 20 16:06 gitinspector.py -> /opt/gitinspector-0.3.2/gitinspector/gitinspector.py

Example

Look at scala sources - git@github.com:scala/scala.git

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
➜  scala git:(2.12.x) gitinspector.py -Tlr --since=2014-01-01
The following historical commit information, by author, was found in the repository:

Author                     Commits    Insertions      Deletions    % of changes
Adriaan Moors                    6            69           7365            9.81
Antoine Gourlay                  6            98           7391            9.88
David Hoepelman                  1            30             25            0.07
EECOLOR                          1             1              5            0.01
Eitan Adler                      1             2              2            0.01
Felix Mulder                    12           776           6272            9.30
Janek Bogucki                    1             2              2            0.01
Jason Zaugg                     26           617            263            1.16
Kato Kazuyoshi                   3            12             12            0.03
Lukas Rytz                      22          7400          44785           68.87
Marcin Kubala                    1            95             35            0.17
Mariot Chauvin                   1             6             29            0.05
Michał Pociecha                  1             1              1            0.00
Pim Verkerk                      1             1              1            0.00
Seth Tisue                       1             0             38            0.05
Simon Ochsenreither              3           246             71            0.42
Viktor Klang                     1            19             44            0.08
mpociecha                        1            26             26            0.07

Below are the number of rows from each author that have survived and are still intact in the current revision:

Author                     Rows       % in comments
Adriaan Moors                29               10.34
Antoine Gourlay              18               38.89
David Hoepelman              30               10.00
EECOLOR                       1                0.00
Felix Mulder                616               11.36
Janek Bogucki                 2                0.00
Jason Zaugg                 430                8.84
Kato Kazuyoshi                5                0.00
Lukas Rytz                34620                1.20
Marcin Kubala                49                2.04
Pim Verkerk                   1                0.00
Simon Ochsenreither         245                5.31
mpociecha                     2              100.00

The following history timeline has been gathered from the repository:

Author                  2014-02    2014-03    2014-05    2014-06    2014-07    2014-08    2014-09    2014-10    2014-11    2014-12    2015-02
Adriaan Moors                ++          -                                                                                           ----++++
Antoine Gourlay                                                              ---------  +++++++++
Jason Zaugg           +++++++++          +          .  +++++++++  +++++++++                                .  +++++++++
Kato Kazuyoshi                                                                       .
Lukas Rytz                                   ++++++++                                .         ++                                .
Marcin Kubala                     --++++++
Simon Ochsenreither                                                                                     ++++
Viktor Klang                                                                                        ------++
mpociecha                                                                                                                 ----++++
Modified Rows:               95        174       4028          7          1       7414         91         94         10         54          4

Author                  2015-03    2015-04    2015-05    2015-06    2015-07    2015-08    2015-09    2015-10    2015-11    2015-12    2016-01
Adriaan Moors                                                 ++  ---------
Antoine Gourlay               .                                                          ++++++++
EECOLOR                       .
Eitan Adler                                                                                                                                 .
Felix Mulder                                                                                                              ---+++++  ---------
Janek Bogucki                                                                                                  ----++++
Jason Zaugg             +++++++          .          .          +          .                        +++++++++                                .
Kato Kazuyoshi                .          .
Lukas Rytz             ++++++++  ---------  ---------   ++++++++       ++++
Mariot Chauvin                                                            .
Michał Pociecha                                                                      .
Seth Tisue                                                                   ---------
Simon Ochsenreither                      .                                                                                                  .
Modified Rows:              642      12953      31781         62      10763         40         12          6          4        173       5694

Author                  2016-02    2016-03
David Hoepelman                          +
Felix Mulder           ----++++         -+
Jason Zaugg                      ---------
Lukas Rytz                    .
Pim Verkerk                              .
Modified Rows:             1255        411

The following repsonsibilties, by author, were found in the current revision of the repository (comments are exluded from the line count, if
possible):

Adriaan Moors is mostly responsible for:
    12 test/files/pos/t9356/MyAnnotation.java
     3 test/files/pos/t6169/Skinnable.java
     3 test/files/pos/t6169/ExistIndir.java
     3 test/files/pos/t6169/ExistF.java
     3 test/files/pos/t6169/Exist.java
     1 test/files/pos/t6169/Skin.java
     1 test/files/pos/t6169/OP.java

Antoine Gourlay is mostly responsible for:
     8 test/files/pos/t9239/Usage.java
     1 test/files/neg/t4851/J2.java
     1 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/index.js
     1 spec/public/scripts/highlight.pack.js

David Hoepelman is mostly responsible for:
    27 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/template.js

EECOLOR is mostly responsible for:
     1 src/library/scala/runtime/BoxesRunTime.java

Felix Mulder is mostly responsible for:
   395 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/index.js
    74 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/template.js
    49 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/scheduler.js
    26 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/diagrams.js
     1 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/jquery.panzoom.min.js
     1 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/jquery.mousewheel.min.js

Janek Bogucki is mostly responsible for:
     1 src/library/scala/reflect/ScalaSignature.java
     1 src/library/scala/reflect/ScalaLongSignature.java

Jason Zaugg is mostly responsible for:
    45 test/files/run/t7741a/GroovyInterfaceDump.java
    45 test/files/run/t7741a/GroovyInterface$1Dump.java
    43 src/library/scala/runtime/StructuralCallSite.java
    29 src/library/scala/runtime/LambdaDeserialize.java
    20 src/library/scala/runtime/SymbolLiteral.java
    16 test/files/run/indy-via-macro-with-dynamic-args/Bootstrap.java
    15 test/files/run/indy-via-macro/Bootstrap.java
    12 test/files/run/t9268/Java.java
    11 test/files/pos/t5165b/TestAnnotation_1.java
    10 test/files/pos/t9393/NamedImpl_2.java

Kato Kazuyoshi is mostly responsible for:
     5 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/template.js

Lukas Rytz is mostly responsible for:
   495 src/library/scala/runtime/java8/JFunction2.java
   495 src/library/scala/runtime/java8/JFunction2$mcZJJ$sp.java
   495 src/library/scala/runtime/java8/JFunction2$mcZJI$sp.java
   495 src/library/scala/runtime/java8/JFunction2$mcZJD$sp.java
   495 src/library/scala/runtime/java8/JFunction2$mcZIJ$sp.java
   495 src/library/scala/runtime/java8/JFunction2$mcZII$sp.java
   495 src/library/scala/runtime/java8/JFunction2$mcZID$sp.java
   495 src/library/scala/runtime/java8/JFunction2$mcZDJ$sp.java
   495 src/library/scala/runtime/java8/JFunction2$mcZDI$sp.java
   495 src/library/scala/runtime/java8/JFunction2$mcZDD$sp.java

Marcin Kubala is mostly responsible for:
    47 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/template.js
     1 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/index.js

Pim Verkerk is mostly responsible for:
     1 src/scaladoc/scala/tools/nsc/doc/html/resource/lib/scheduler.js

Simon Ochsenreither is mostly responsible for:
   117 spec/public/scripts/toc.js
    55 spec/public/scripts/main.js
    11 test/files/neg/t8700b/Baz_1.java
    11 test/files/neg/t8700a/Baz.java
     5 test/files/run/t4788/SAnnotation.java
     5 test/files/run/t4788/RAnnotation.java
     5 test/files/run/t4788/CAnnotation.java
     5 test/files/run/t4788-separate-compilation/SAnnotation_1.java
     5 test/files/run/t4788-separate-compilation/RAnnotation_1.java
     5 test/files/run/t4788-separate-compilation/CAnnotation_1.java

The extensions below were found in the repository history (extensions used during statistical analysis are marked):
rtf number x-build conf 0-M0 txt check xml [java] scala res json html yml css bnd tmpl sbt latex bib [js] SAMPLE awk html5 properties md bat sha1 svg script list sh flags