Wie kann ich GitStats verwenden, um herauszufinden, wie viele SLOC ein Git -Repo insgesamt und pro enger hat? [abgeschlossen

StackOverflow https://stackoverflow.com/questions/9301759

  •  25-10-2019
  •  | 
  •  

Frage

Ich habe gerade installiert Gitstats, Und ich bin an diesem Punkt, an dem ich sagen muss: "Nun, was?". Ich sehe Beispiele auf der Site von Benutzerzeilen von Code usw., aber keine Beispiele dafür, wie man solche einfachen Statistiken erhalten. Ich brauche kein Diagramm oder so. Ich möchte nur in der Lage sein, die Ergebnisse in einer Liste von Benutzerzeilen oder so auszugeben. Jede Hilfe wird sehr geschätzt.

War es hilfreich?

Lösung

Update (11. Juli 2014)

Ich bin mir nicht sicher, welche Version ich installiert hatte, als ich diese Frage zum ersten Mal beantwortete, aber die neueste Version gab mir eine authors.html Datei, als ich rannte gitstats /path/to/repo/.git /path/to/output/dir/ Das enthielt genau die Informationen, nach denen ich gesucht habe.

Ursprüngliche Antwort

Es ist ziemlich einfach, fand ich. Sie tippen einfach:

gitstats /path/to/the/repo.git --outputpath=directory_where_you_want_the_output

Es gibt den gesamten Bericht mit Diagrammen, Navigation über Registerkarten usw. aus.

Hinweis: Sie können nicht sagen, wie viele Zeilen jeder Benutzer beigetragen hat (zumindest mit der Version von Gitstats, dass ein apt-get install gitstats hast mich). Die Ausgabe war nützlich und ist eine großartige Möglichkeit, etwas über Ihre Codebasis und ihre Mitwirkenden zu erfahren. Ich habe Folgendes gemacht, um die Anzahl der Zeilen eines bestimmten Benutzers zu erhalten:

git log --author="Some Author <Some.Author@example.com>" --oneline --shortstat > some_author.txt

Dann habe ich Python verwendet, um die Daten zu analysieren (da es Hunderte von Commits gab):

>>> import re
>>> file = open('some_author.txt', 'r')
>>> adds, dels = 0, 0
>>> for line in file.readlines():
...     am, dm = re.search(r'\d+(?= insertions)', line), re.search(r'\d+(?= deletions)', line)
...     if am is not None:
...         adds += int(am.group())
...         dels += int(dm.group())
... 
>>> adds, dels
(5036, 1653)
>>> file.close()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top