Paste Description for Git
requires FasterCSV, run in your source directory
Git
- require 'fastercsv'
- h = Hash.new
- linen = 0
- dategroup = Date.new
- #.select{ |l| l =~ /[a-zA-Z0-9]+/ }
- `git log --pretty=format:%aD --shortstat | grep [a-zA-Z0-9]`.each { |line|
- if line =~ /\d\d:\d\d:\d\d/ then
- date = Date.parse(line)
- dategroup = Date.new(date.year, date.month, 1)
- if h[dategroup] then
- h[dategroup][:commits] += 1
- else
- h[dategroup] = Hash.new
- h[dategroup][:commits] = 1
- end
- else
- line =~ /([\d]+) files changed, ([\d]+) insertions\(\+\), ([\d]+) deletions\(-\)/
- h[dategroup][:insert] = (h[dategroup][:insert])? h[dategroup][:insert].to_i + $2.to_i : $2.to_i
- h[dategroup][:delete] = (h[dategroup][:delete])? h[dategroup][:delete].to_i + $3.to_i : $3.to_i
- end
- }
- FasterCSV.open("/tmp/count.csv", "w") do |csv|
- h.sort.each { |date, value|
- csv << [ "#{date.month}/1/#{date.year}", value[:commits], value[:insert] + value[:delete] ]
- }
- end