Hier ist ein einfacher Ruby-Skript, das ich verwenden, Autor zu bekommen, Zeilen hinzugefügt, Linien entfernt, und commit count von git. Es deckt nicht im Laufe der Zeit Commits.
Beachten Sie, dass ich einen Trick habe, bei dem jedes Commit ignoriert wird, das mehr als 10.000 Zeilen hinzufügt/entfernt, da ich davon ausgehe, dass dies ein Code-Import ist. Sie können die unten in eine Datei mit dem Namen gitstats-simple.rb setzen und dann
git log --numstat --pretty='%an' | ruby gitstats-simple.rb
Inhalt gitstats-simple.rb
#!/usr/bin/ruby
# takes the output of this on stdin: git log --numstat --prety='%an'
map = Hash.new{|h,k| h[k] = [0,0,0]}
who = nil
memo = nil
STDIN.read.split("\n").each do |line|
parts = line.split
next if parts.size == 0
if parts[0].match(/[a-z]+/)
if who && memo[0] + memo[1] < 2000
map[who][0] += memo[0]
map[who][1] += memo[1]
map[who][2] += 1
end
who = parts[0]
memo = [0,0]
next
end
if who
memo[0]+=line[0].to_i
memo[1]+=parts[1].to_i
end
end
puts map.to_a.map{|x| [x[0], x[1][0], x[1][1], x[1][2]]}.sort_by{|x| -x[1] - x[2]}.map{|x|x.inspect.gsub("[", "").gsub("]","")}.join("\n")
Genau das habe ich gesucht. Erstaunlich, dass Sie die Codezeilen in meinem Beispiel tatsächlich durch "git shortlog -sn" ersetzen können. Für diese Antwort abstimmen –
auch 'git shortlog -sn --no-merges' entfernen" merge commits "aus der Zählung. – lbolla
Februar 2010: [Linus Angriffe!] (Http://gitstats.sourceforge.net/examples/git/authors.html#cumulated_added_lines_of_code_per_author) – naught101