Napisałbym mały skrypt, który analizuje wyjście git log --stat --pretty=format:'%cN'
; coś wzdłuż linii:
#!/usr/bin/env perl
my %file;
my $contributor = q();
while (<>) {
chomp;
if (/^\S/) {
$contributor = $_;
}
elsif (/^\s*(.*?)\s*\|\s*\d+\s*[+-]+/) {
$file{$1}{$contributor} = 1;
}
}
for my $filename (sort keys %file) {
print "$filename:\n";
for my $contributor (sort keys %{$file{$filename}}) {
print " * $contributor\n";
}
}
(pisemna tylko szybko; nie obejmuje takich przypadków plików binarnych.)
Jeśli przechowywane ten skrypt, na przykład jako ~/git-contrib.pl
, można nazwać go:
git log --stat=1000,1000 --pretty=format:'%cN' | perl ~/git-contrib.pl
Zaleta: zadzwoń pod numer git
tylko raz, co oznacza, że jest dość szybki. Wada: to oddzielny skrypt.
To jest szybkie, ale nie wyświetla pełnych ścieżek plików. – log0
Jeśli struktura katalogów jest zbyt głęboka, aby nazwy plików zostały obcięte, po prostu określ dowolny parametr o wysokiej szerokości wyjściowej dla opcji '--stat', np. '--stat = 1000' – igor
' --stat = 1000,1000' wykonał zadanie – log0