यहाँ एक सरल रूबी लिपि है जिसका उपयोग मैंने लेखक से किया है, लाइनों को जोड़ा गया है, लाइनों को हटाया गया है, और गिट से गणना की है। यह समय के साथ कमिट को कवर नहीं करता है।
ध्यान दें कि मेरे पास एक चाल है जहां यह 10,000 से अधिक लाइनों को जोड़ने / हटाने वाली किसी भी प्रतिबद्ध को अनदेखा करता है क्योंकि मुझे लगता है कि यह किसी प्रकार का एक कोड आयात है, अपनी आवश्यकताओं के लिए तर्क को संशोधित करने के लिए स्वतंत्र महसूस करें। आप नीचे gitstats-simple.rb नामक फ़ाइल में रख सकते हैं और फिर चला सकते हैं
git log --numstat --pretty='%an' | ruby gitstats-simple.rb
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")