← Neueste Arbeiten
💻 computer science

GitEvo: Code Evolution Analysis for Git Repositories

Dieses Paper präsentiert GitEvo, ein mehrsprachiges und erweiterbares Werkzeug, das Git-Ebene- und Code-Ebene-Analysen integriert, um Studien zur Code-Evolution für Praktiker, Forscher und Lehrende zu unterstützen.

Ursprüngliche Autoren: Andre Hora

Veröffentlicht 2026-02-03
📖 5 Min. Lesezeit🧠 Tiefgang

Ursprüngliche Autoren: Andre Hora

Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen

Stellen Sie sich vor, Sie hätten eine riesige, lebendige Bibliothek aus Softwarecode. Jedes Mal, wenn ein Programmierer eine Änderung vornimmt, fügt er eine neue Seite zu einem Buch hinzu, führt aber auch ein perfektes Tagebuch über jede einzelne Änderung, wer sie gemacht hat und wann. Dieses Tagebuch wird ein Git-Repository genannt.

Lange Zeit hatten wir zwei verschiedene Möglichkeiten, diese Bibliothek zu betrachten:

  1. Die Sicht des Bibliothekars: Werkzeuge, die Ihnen sagen konnten, wie viele Seiten hinzugefügt wurden, wer sie geschrieben hat und wann das Buch aktualisiert wurde. Sie konnten jedoch nicht die eigentlichen Wörter innerhalb der Seiten lesen.
  2. Die Sicht des Editors: Werkzeuge, die die Wörter lesen, die Sätze zählen und die Grammatik einer einzelnen Seite analysieren konnten. Sie konnten jedoch nicht die Geschichte sehen; sie betrachteten nur eine Momentaufnahme.

GitEvo ist ein neues Werkzeug, das wie ein superintelligenter, zeitreisender Editor fungiert. Es kombiniert beide Ansichten und ermöglicht es Ihnen, zu beobachten, wie sich die „Wörter“ des Codes im Laufe der Zeit verändern, und nicht nur die Anzahl der Seiten.

So funktioniert es, unter Verwendung einfacher Analogien:

1. Die „Zeitreise-Kamera“

Stellen Sie sich GitEvo wie eine Kamera vor, die nicht nur ein Foto von einem Gebäude macht; sie macht jeden Tag ein Foto von dem Gebäude und fügt sie zu einem Film zusammen.

  • Der alte Weg: Man konnte zählen, wie viele Ziegelsteine jedes Jahr hinzugefügt wurden (Git-Ebene), oder den Architekturstil eines Gebäudes an einem bestimmten Tag analysieren (Code-Ebene).
  • Der GitEvo-Weg: Es beobachtet die Entwicklung des Gebäudes. Es kann sagen: „Im Jahr 2020 begannen die Architekten, mehr Glasfenster zu verwenden (ein spezifisches Coding-Muster), und bis 2024 bestand die gesamte Vorderwand aus Glas.“ Es verbindet die Geschichte des Projekts mit den Details des Codes.

2. Der „Universelle Übersetzer“

Eines der größten Probleme in der Softwareentwicklung ist, dass verschiedene Sprachen (Python, Java, JavaScript) normalerweise unterschiedliche Werkzeuge erfordern, um sie zu lesen. Es ist, als bräuchte man ein französisches Wörterbuch für französische Bücher und ein spanisches Wörterbuch für spanische Bücher, ohne eine Möglichkeit, sie einfach miteinander zu vergleichen.

GitEvo ist wie ein universeller Übersetzer, der all diese Sprachen gleichzeitig spricht.

  • Es verwendet eine leistungsstarke „Grammatik-Engine“ (genannt Tree-sitter), die Python, JavaScript, TypeScript und Java lesen kann.
  • Anstatt für jede Sprache ein neues Skript zu schreiben, schreibt ein Benutzer ein einziges Skript in Python, und GitEvo übersetzt dieses Skript, um den Code in all diesen vier Sprachen zu verstehen. Es ist wie ein einziges Fernglas, das für Vögel, Fische und Säugetiere funktioniert.

3. Wie Sie es verwenden (Das „Rezeptbuch“)

Das Paper erklärt zwei Wege, GitEvo zu nutzen:

  • Das „Fertiggericht“ (Kommandozeile): Wenn Sie nur einen schnellen Bericht sehen möchten, können Sie einen einfachen Befehl eingeben, so als würden Sie einen Koch bitten: „Mach einen Salat.“ GitEvo erstellt sofort einen Bericht, der zeigt, wie der Code gewachsen ist, wie viele Tests hinzugefügt wurden oder wie komplex der Code im Laufe der Zeit wurde. Es liefert Ihnen ein fertiges Diagramm oder eine Tabelle.
  • Das „Eigene Rezept“ (API): Wenn Sie ein Forscher oder ein neugieriger Entwickler sind, können Sie Ihr eigenes „Rezept“ schreiben. Sie können GitEvo sagen: „Ich möchte zählen, wie oft die Entwickler eine bestimmte Art von Schleife verwendet haben“ oder „Ich möchte verfolgen, wie viele 'Mock'-Tests (Tests mit fiktiven Daten) in den letzten fünf Jahren hinzugefügt wurden.“ GitEvo führt dann dieses benutzerdefinierte Rezept über die gesamte Historie des Projekts aus und erstellt für Sie eine Grafik.

4. Was die Menschen damit machen

Das Paper hebt drei Hauptgruppen hervor, die dieses Werkzeug nutzen:

  • Forscher (Die Wissenschaftler): Sie nutzten GitEvo, um über 1,2 Millionen Code-Änderungen zu untersuchen. Beispielsweise verfolgten sie, wie oft Entwickler mit „Mocking“ (einer Testtechnik) begannen, über verschiedene Sprachen hinweg, oder wie sich die Nutzung spezifischer Python-Funktionen (wie „Lambdas“) über ein Jahrzehnt veränderte.
  • Praktiker (Die Erbauer): Entwickler bei Unternehmen wie FastAPI nutzten es, um auf ihre eigene Arbeit zurückzublicken. Ein Entwickler sagte, es sei großartig, um „einen Schritt zurückzutreten und die Arbeit zu sehen, die wir geleistet haben“. Es hilft ihnen, Trends zu visualisieren, wie zum Beispiel: „Schreiben wir mehr Tests?“ oder „Wird unser Code komplexer?“
  • Lehrkräfte (Die Lehrer): In einem Universitätskurs nutzten über 90 Studenten GitEvo, um reale Software zu erkunden. Anstatt nur über Softwareveränderungen zu lesen, konnten sie erleben, wie sie geschehen. Sie entdeckten Dinge wie: „Oh, dieses Projekt hat eine bestimmte Art von Variable aufgehört zu verwenden und ist zu einer anderen gewechselt“, was ihnen half, die zugrunde liegenden Engineering-Entscheidungen zu verstehen.

Das Fazit

GitEvo ist ein Werkzeug, das die Lücke zwischen der Historie (was im Repository passiert ist) und dem Inhalt (was der Code tatsächlich sagt) schließt. Es ermöglicht jedem, die Frage zu stellen: „Wie hat sich diese Software entwickelt?“ und eine klare, visuelle Antwort zu erhalten, unabhängig davon, ob der Code in Python, Java oder JavaScript geschrieben wurde. Es verwandelt eine unordentliche Historie von Code-Änderungen in eine klare Geschichte von Wachstum und Veränderung.

Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?

Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.

Digest testen →