এখানে একটি সরল রুবি স্ক্রিপ্ট যা আমি লেখক, লাইন যুক্ত, লাইন মুছে ফেলার এবং গিট থেকে গণনা করার জন্য ব্যবহার করতাম। এটি সময়ের সাথে কমিটগুলি কভার করে না।
নোট করুন যে আমার এমন কৌশল আছে যেখানে এটি 10,000 টিরও বেশি লাইন যুক্ত / সরিয়ে দেয় এমন কোনও প্রতিশ্রুতি উপেক্ষা করে কারণ আমি ধরে নিই যে এটি কোনও ধরণের কোড আমদানি, আপনার প্রয়োজনের জন্য যুক্তি সংশোধন করতে নির্দ্বিধায় অনুভব করুন। আপনি নীচে gitstats-simple.rb নামক একটি ফাইলে রাখতে পারেন এবং তারপরে চালান
git log --numstat --pretty='%an' | ruby gitstats-simple.rb
gitstats-simple.rb এর সামগ্রী contents
#!/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")