Analyze and Visualize Git Log For Fun and Profit Raimonds Simanovskis
 @rsim
Ignite RailsConf 2012
Code Metrics... Lines of code Cyclomatic complexity Test coverage Duplication
Git Commit Log
Mining Rails — Learning from your App’s Lifeline Michael Feathers, Corey Haines RailsConf 2011
Multi-Dimensional Analysis TimeFiles Authors Measures Commits Additions Deletions Dimensions File Extension Commit Time Zone Hour Week Day
Ruby on Rails Git Log
Changes in Ruby files Birth of Rails Great Rails 3 refactoring RailsConf is coming
DHH contribution Rails is mine Let others contribute too Car racing takes all my time… OMG! I should give a technical talk at RailsConf! Don’t make this mistake anymore
Top contributors in 2015 by number of commits
Top contributors in 2015
9-to-5 disciplined developer Hours of day warms up with small commits eats lunch at 12pm finishes work and socializes Aaron Patterson
Don’t judge someone by their appearance Hours of day @tenderlove
Don’t burn yourself! Hours of day José Valim Why don’t you sleep? Ruby on Rails contribution in 2012 Working on Elixir? Get angry and start deleting code?
Finding the best working pattern Hours of day Elixir contribution in 2015 José Valim
Contributions by time zone in 2015 US West coast Brasil Europe Japan India
Changes per day of week in 2015
Changes per hour on Fridays, in 2015 Beer time BDD
Linux > 0.5M commits > 20M lines of code > 70M lines of changes > 14K contributors
Changes over time Jan 1 1970 Apr 25 2037
Changes over time Jan 1 1970 Apr 25 2037 Apr 16 2005 Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
Top changed files
What is this large
 C++, C, Assembler project?
Changes over time Really? > 4M LOC?
Changes over time Really? > 4M LOC? #### Dependencies Node.js has several bundled dependencies in the *deps/* and the *tools/* directories that are not part of the project proper. Any changes to files in those directories or its subdirectories should be sent to their respective projects. Do not send your patch to us, we cannot accept it.
Without dependencies
Without dependencies
Top contributors
Ryan Dahl Creator of Node.js
Isaac Schlueter
Top contributors
John Resig Creator of jQuery
Top contributors Alexei Vladishev
Huge Toad
Bonus WTF
Why duplicates?
Oh, Unicode… "Jau0304nis" "Ju0101nis" a + ̄ ā
"Jau0304nis" "Ju0101nis" .gitconfig as UTF-8 WHY???
There are only 2 hard things in CS Naming things Cache invalidation Off by one errors Time zones Unicode special characters
https://eazybi.com/help/git @rsim

Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015