Ask the Relic


GIT Line Totals Per Author

October 24, 2009 at 09:58 PM | categories: Life | View Comments

I finally switched all of my projects over to git or git-svn and have never been happier. Everything has so many more options than svn, everything is faster, and the universe of software for git is way better than svn. Switch now!

Awhile back I wrote a command to print the total number of lines contributed per author for my svn repository because I wanted to see how awesome I am. I decided to port this command over to git.

    git ls-files | xargs -n1 -d'n' -i git-blame {} | perl -n -e '/s((.*?)s[0-9]{4}/ && print "$1n"' | sort -f | uniq -c -w3 | sort -r
    
    Output:
     217167 mattb
      11592 bob
       3975 alice
       1276 jim
        358 tom
         64 brad
         13 Not Committed Yet
   

This output includes a bunch of binary files which throw off the total. If you mess with the ls-file options, you can remove them or only include specific source filestypes.

    #to remove really random binary files
    git ls-files -x "*pdf" -x "*psd" -x "*tif"  
    #to only include specific file types
    git ls-files "*.py" "*.html" "*.css" 
   

I crossposted this over at commndlinefu, so there might be some helpful feedback over there too.

blog comments powered by Disqus