Git Mitwirkende jeder Datei

8

Ich möchte alle Mitwirkenden für jede Datei im Repository auflisten.

Hier ist derzeit was ich mache:

%Vor%

Das ist sehr langsam. Gibt es eine bessere Lösung?

    
log0 31.07.2012, 10:05
quelle

3 Antworten

4

Ich würde ein kleines Skript schreiben, das die Ausgabe von git log --stat --pretty=format:'%cN' analysiert; etwas in der Art von:

%Vor%

(Nur schnell geschrieben; Fälle wie Binärdateien werden nicht behandelt.)

Wenn Sie dieses Skript z. B. als ~/git-contrib.pl gespeichert haben, können Sie es wie folgt aufrufen:

%Vor%

Vorteil: Rufen Sie git nur einmal auf, was bedeutet, dass es ziemlich schnell ist. Nachteil: Es ist ein separates Skript.

    
igor 31.07.2012, 10:58
quelle
5

Ich nehme die Antwort von ДМИТРИ as als Basis, ich würde folgendes sagen:

%Vor%

Verbesserung ist, dass es nach dem Umbenennen von Dateien in seinem Verlauf folgt und sich korrekt verhält, wenn Dateien Leerzeichen enthalten ( | while read file )

    
CharlesB 31.07.2012 12:59
quelle
2

tldr :

%Vor%
  1. Sie können alle verfolgten Dateien im Repository mit git ls-tree abrufen. Find ist wirklich eine schlechte Wahl.

    Beispiel: Erhalte eine Liste der verfolgten Dateien im Zweig master im aktuellen Verzeichnis ( ./ ):

    %Vor%
  2. Sie können eine Liste von Dateieditoren mit get shortlog ( git blame ist Overkill) erhalten:

    %Vor%

Also sollten Sie für jede Datei von ls-tree response shortlog aufrufen und die Ausgabe beliebig ändern.

    
quelle

Tags und Links