2015-01-06 9 views
6

Gibt es in IntelliJ 14 eine Möglichkeit, das vollständige Protokoll einer bestimmten Datei anzuzeigen?Grafisch das Äquivalent von git log anzeigen - follow in IntelliJ

Ich meine: Ausführen einer Art von git log --follow grafisch, um die alten Versionen zu sehen; bevor diese Dateien möglicherweise umbenannt wurden.

Derzeit, wenn ich tun Git => Zeige Verlauf für eine Datei, zeigt es nur das Äquivalent von git log.

Antwort

3

Die --follow scheint "Buggy" beurteilt wurden, aber git log sollte auf IDEA folgen umbenennen:

Siehe "IDEA-66700 git log should follow renames (--follow option)":

Schliessung: der Antrag vor einer Weile festgelegt wurde (nicht über Buggy -–follow obwohl).

würden Sie zusätzliche Informationen finden in „IDEA-89370 Git: show history for renamed folder omits history before rename

Wir verwenden keine --follow (wegen seiner Buggy Natur): Statt nennen wir git show -M am letzten begehen und überprüfen, ob die Datei wurde in diesem Commit umbenannt, und in diesem Fall Anfrage Geschichte für den alten Dateinamen, und so weiter.

Beachten Sie, dass (nicht, dass es unbedingt hier der Fall ist) die Geschichte eines umbenannt Ordner zu zeigen versuchen würde sowieso nicht funktionieren:

Aufruf git log -- <dir> auch mit --follow nicht folgen Umbenennen, was jedoch logisch ist, da das Protokoll durch den neuen Verzeichnisnamen gefiltert wird und der alte Name nicht übereinstimmt.
I.e. Git selbst bietet keine Historie für Verzeichnisse in Umbenennungen.


Für bestimmte Art von Datei umbenennen, gibt es immer noch Probleme:
"IDEA-89347 Git: part of the file history is not shown because of cyclic renames of the file."

git log --follow perfekt folgt all diese Umbenennungen. Aber wie wir wissen, zeigt es keine Zusammenführungen. Also können wir es nicht benutzen.

Stattdessen muss unser Algorithmus zum Abrufen der gesamten Dateihistorie verbessert werden.
Wir müssen uns eigentlich jede Revision ansehen und prüfen, ob die Datei dort umbenannt wurde.

Natürlich ist der Aufruf git show --name-status -M für jede Revision sehr teuer.
Hier ist die Lösung: Anruf git log --name-status und schauen Sie sich die Revisionen der Datei an, wo es HINZUGEFÜGT wird (Umbenennungen werden nicht von git log gezeigt, auch mit "-M", weil wir es auf den angegebenen Dateipfad beschränken).

+0

Wie erklärt man das Ergebnis so? Ich sehe nicht alle damit verbundenen Commits. – Mik378

+0

@ Mik378 Welche Version von IntelliJ IDEA verwenden Sie? – VonC

+0

Ich habe es gerade spezifiziert: Ich benutze die neueste: 14 (Release One) – Mik378

Verwandte Themen