Angenommen, ich habe ein Softwareprojekt, an dem ich arbeite, und ich möchte einige Statistiken darüber berechnen:
Ich werde mich natürlich nur mit einigen davon zufrieden geben - je mehr desto besser. Ich garantiere nicht, dass das Repository irgendeine Form der Quellcodeverwaltung hat (obwohl ich persönlich gerade mit Mercurial arbeite); und es ist kein Klon eines Online-Repositorys (also nichts wie Gitstats).
Anforderungen:
hg diff --stat
)Wünschenswerte Eigenschaft:
CLOC - Count Lines of Code - erledigt einige (nicht alle) dieser Dinge und erfüllt alle Anforderungen. Es ist auch schnell, klein und hängt nur von Perl und ein paar Perl-Bibliotheken ab.
Beispielausgabe:
http://cloc.sourceforge.net v 1.60 T=0.46 s (354.6 files/s, 64728.0 lines/s)
--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
C/C++ Header 108 2761 2452 10226
C++ 47 1626 772 9703
make 1 476 193 931
Bourne Again Shell 3 50 25 346
CMake 2 48 68 225
XML 1 0 0 11
YAML 1 1 6 8
Bourne Shell 1 1 2 5
--------------------------------------------------------------------------------
SUM: 164 4963 3518 21455
--------------------------------------------------------------------------------
Es gibt eine plattformübergreifende Python-Metrikbibliothek, die Ihnen Metriken entweder in einer einzelnen Datei liefert oder einen Verzeichnisbaum rekursieren kann. Es ist aus dem ursprünglichen Projekt verfügbar oder mein Fork fügt eine rekursive Option auf GitHub hinzu.
Laufen auf einem alten Projekt, das ich mit der Recurse-Option übergeben muss:
Files Language SLOC Comment McCabe
----- ------------------------------ ----------- ------- ------
102 XML 10601 2415 0
7 VGL 4837 14 49
588 C 441797 135164 11715
302 D 7750 0 0
27 XSLT 691 313 0
13 Python 881 203 141
4 XML+PHP 21489 0 0
38 Makefile 1747 3948 18
7 Batchfile 45 8 7
2 HTML 9 36 0
17 Text only 0 0 0
1 POVRay 8 19 0
----- ------------------------------ ----------- ------- ------
1108 Total 489855 142120 11930
einpoklum
Jean-François T.