Zeigt nun die Anzahl der Zeilen, die Hinzugefügt, GEÄNDERT und entfernt werden mit git-Statistiken

Ich brauche eine Lösung, die zeigt mir die Anzahl der Zeilen, die Hinzugefügt, entfernt und geändert werden von jedem git commit. Für git stats, es zeigt nur die Einfügungen und Löschungen, aber nicht die änderungen. Ich habe keine Lösung gefunden, die nützlich sein könnten für dieses problem.

Example

1 Antworten

  • VonC
    4. Mai 2019

    Diese Frage hat sich dieser patch Vorschlag Anfang 2018.
    Philip Wood versucht zu markieren, das Konzept der "modifizierten Zeilen".
    (Eine vereinfachte version seines patch es hier gemacht)

    Wenn eine Reihe von Zeilen geändert wird der Brocken enthält Streichungen, gefolgt von Einfügungen.
    Korrekt Bühne eine Teilmenge der modifizierten Zeilen, die wir brauchen, um bis die ausgewählten Deletionen, die mit der ausgewählten Einfügungen sonst haben wir am Ende mit Streichungen und Kontext-Linien, gefolgt von Einfügungen, die nicht ist, was wir wollen.

    Das endete bis zu schwierig sein:

    Zur Umsetzung der Inszenierung veränderter Linien muss der code pair up für jede gelöschte Zeile mit seinem Ersatz.
    Dies geschieht durch die Gruppierung von aufeinanderfolgenden ausgewählten Linien zusammen, so hat es eine Liste der Gruppen von gelöschten Zeilen und eine andere Liste der eingefügten Zeilen, es dann Paare, die Deletionen und Insertionen, die durch Ihren index in der Liste.

    Philip begann, Zweifel zu haben:

    Ich beginne zu sehen, warum alle anderen Programme, die ich habe versucht, beim schreiben dieses (tig, gitg, gitk und mercurial's version von add -i) nicht machen jeden Versuch, die Bühne modifizierten Zeilen richtig, wenn ich denke, Git, sollten die Möglichkeit haben, es zu tun

    Qnd der Haupt-maintainer von Git Junio C. Hamano bestätigt diese Zweifel, mit dieser Antwort:

    Ja, das ist eine Art Funktion, die kann man vorschlagen und implementieren, etwas, das gut funktioniert für einige der begrenzten Anzahl von Fällen verwendet man aber nicht in anderen Fällen.
    Und es wird sehr schwer zu erklären, wie die Arbeit rund um die Umsetzung der Einschränkung, dass--das ist der Grund, warum ich nicht mehr auf "split in diesem Stück?", und nicht über Sie hinausgehen, wenn ich die original "inkrementelle hinzufügen" - Funktion.

    Ich denke, der wahre Grund, warum es so schwer ist, dass es keine gute definition für "geändert" in "Bühne modifizierten Zeilen".
    Und schlimmer noch, es ist kein guter Weg, zu mechanisch, es herauszufinden, denn ein patch gibt nur "diese wurden gelöscht" und "diese werden Hinzugefügt", ohne dass Sie "diese Zeile in den gelöschten block entspricht, um diese zwei Zeilen in der hinzugefügten block" (d.h. "das original eine Zeile geändert wurde in dieser Sache im Ergebnis").