From: Felipe Contreras Date: Thu, 15 Oct 2009 13:20:02 GMT Subject: My custom cccmd Message-ID: <94a0d4530910150620g733bdf0aq88660053f869b0a9@mail.gmail.com> Hi, I love the new option to run a cccmd and how good it works on the linux kernel, but I couldn't find a generic script. So I decided to write my own. It's very simple, it just looks into the authors of the commits that modified the lines being overridden (git blame). It's not checking for s-o-b, or anything fancy. Comments? #!/usr/bin/env ruby @commits = {} # keeps a count of commits per author ARGV.each do |filename| File.open(filename) do |patch_file| patch_file.each_line do |patch_line| case patch_line when /^---\s+(\S+)/ @source = $1[2..-1] when /^@@\s-(\d+),(\d+)/ blame = `git blame -p -L #{$1},+#{$2} #{@source} | grep author` blame.each_line do |al| key, value = al.chomp.split(" ", 2) case key when "author" @name = value when "author-mail" @mail = value author = "\"#{@name}\" #{@mail}" @commits[author] ||= 0 @commits[author] += 1 end end end end end end @commits.each_key do |a| puts a end -- Felipe Contreras