2011-01-12 10 views
4

Ich bin mit der Aufgabe konfrontiert, Statistiken über die Geschichte eines Git-Projekts zu erstellen, und ich muss einige spezifische Zahlen und Repräsentationen für verschiedene Metriken erstellen - Dinge wie Commits pro Autor, Commits-over- Zeit/Datum-Histogramme, diese Art von Dingen.CLI git log statistics

Das Problem ist, dass ich alle diese Daten in einem Format generiert, das über ein Skript oder ähnliches behandelt werden kann - die Ausgabe muss Text sein, und wenn ich die Zahlen in ein Python (oder ähnliches) Skript bekommen kann , so viel besser.

Meine Frage ist: Gibt es irgendwelche vorhandenen Rahmen oder Projekte, die solch eine Schnittstelle zur Verfügung stellen? Ich habe gesehen GitStats, und es tut viel, was ich will, aber dann dumps die Ergebnisse in eine HTML-Struktur, anstatt nur textuelle oder programmatische Darstellungen zurück zu mir. Gibt es (zum Beispiel) Python-Bindungen für einen Git-Log-Parser oder sogar einen Git-Statistik-Generator, der einen großen Text-Dump von Daten zurückgibt?

Ich weiß, es ist ein sehr spezifisches Bedürfnis, und ich bin bereit, einige ernsthafte Codierung zu tun, um das genaue Format zu bekommen, das ich will, aber ich würde gerne denken, dass es irgendwo einen Ausgangspunkt gibt. Ideen?

+1

Es scheint, wie das Recht Ansatz könnte sein, zu versuchen, GitStats das gewünschte Ausgabeformat zu erzeugen. Es wird auch schon in Python geschrieben. Es gibt dort einen HTMLReportCreator, ~ 550 Zeilen Code, aber Sie könnten einfach einen Ersatz dafür einwerfen, oder vielleicht auch nur die Datenstruktur, die er übergeben hat. 'def create (self, Daten, Pfad)'. Gibt es einen Grund, warum das nicht gut für dich wäre? – Cascabel

+0

Jefromi: Es ist sicherlich möglich. Ich schaute es an, und es scheint, dass "Daten" eine GitDataCollector-Instanz (eine benutzerdefinierte Klasse innerhalb des Projekts) ist, kein Wörterbuch oder andere Python-Datenstruktur. Trotzdem, es ist ein großartiger Start. Danke für den Zeiger! – Tim

+0

Jefromi: Nach reiflicher Überlegung habe ich angefangen, meine eigene Bibliothek zu entwickeln, aber wenn du deinen Kommentar als Antwort postest, akzeptiere ich das - das ist die Sache, die mich am besten darüber nachdenken ließ, was die beste Lösung für dieses Problem ist . – Tim

Antwort

1

Wie wäre es mit Hilfe von XML-Protokolle statt, und dann können Sie die XML in Python analysieren relativily leicht und bauen Ihre Statistiken

dies sehen answer, wie von git eine XML-Protokoll erhalten

+0

XML-Protokolle wäre toll, aber diese Antwort hat keine Informationen darüber, wie man ein XML-Log aus Git bekommen - ich glaube, der Antworter verwechselte diese Formatzeichenfolge (von einer anderen Antwort) für XML, wenn es tatsächlich nur ein persönliches bevorzugtes Format ist ein anderer Benutzer: http://stackoverflow.com/questions/1441156/git-how-to-save-a-preset-git-log-format – Tim