Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015
-
Upload
raimonds-simanovskis -
Category
Software
-
view
1.596 -
download
4
Transcript of Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015
![Page 1: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/1.jpg)
Analyze and Visualize Git Log
For Fun and Profit
Raimonds Simanovskis @rsim
![Page 2: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/2.jpg)
Ignite RailsConf 2012
![Page 3: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/3.jpg)
Code Metrics...
Lines ofcode
Cyclomaticcomplexity
Testcoverage Duplication
![Page 4: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/4.jpg)
Git Commit Log
![Page 5: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/5.jpg)
Mining Rails — Learning from your
App’s Lifeline Michael Feathers,
Corey Haines RailsConf 2011
![Page 6: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/6.jpg)
Multi-Dimensional Analysis
TimeFilesAu
thor
s Measures Commits Additions Deletions
Dimensions
File Extension Commit
Time Zone Hour
Week Day
![Page 7: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/7.jpg)
Ruby on Rails Git Log
![Page 8: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/8.jpg)
Changes in Ruby files
Birth of RailsGreat Rails 3refactoring
RailsConfis coming
![Page 9: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/9.jpg)
DHH contribution
Rails is mine
Let otherscontribute
tooCar racingtakes all
my time…
OMG! I shouldgive a technical
talk at RailsConf!
Don’t make thismistake anymore
![Page 10: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/10.jpg)
Top contributors in 2015 by number of commits
![Page 11: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/11.jpg)
Top contributors in 2015
![Page 12: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/12.jpg)
9-to-5 disciplined developer
Hours of day
warms up withsmall commits
eats lunchat 12pm
finishes workand socializes
Aaron Patterson
![Page 13: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/13.jpg)
Don’t judge someone by their
appearance
Hours of day
@tenderlove
![Page 14: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/14.jpg)
Don’t burn yourself!
Hours of day
José Valim
Why don’t yousleep?
Ruby on Rails contribution in 2012
Working onElixir?
Get angryand startdeletingcode?
![Page 15: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/15.jpg)
Finding the best working pattern
Hours of day
Elixir contribution in 2015José Valim
![Page 16: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/16.jpg)
Contributions by time zone in 2015
US Westcoast
BrasilEurope
JapanIndia
![Page 17: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/17.jpg)
Changes per day of week in 2015
![Page 18: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/18.jpg)
Changes per hour on Fridays, in 2015
Beertime
BDD
![Page 19: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/19.jpg)
Linux
> 0.5M commits> 20M lines of code
> 70M lines of changes> 14K contributors
![Page 20: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/20.jpg)
Changes over time
Jan 11970
Apr 252037
![Page 21: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/21.jpg)
Changes over time
Jan 11970
Apr 252037
Apr 162005
Initial git repository build. I'm not bothering with the full history,even though we have it. We can create a separate "historical" gitarchive of that later if we want to, and in the meantime it's about3.2GB when imported into git - space that would just make the earlygit days unnecessarily complicated, when we don't have a lot of goodinfrastructure for it.
Let it rip!
![Page 22: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/22.jpg)
Top changed files
![Page 23: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/23.jpg)
What is this largeC++, C, Assembler
project?
![Page 24: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/24.jpg)
Changes over timeReally?
> 4M LOC?
![Page 25: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/25.jpg)
Changes over timeReally?
> 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 filesin those directories or its subdirectories should be sent to their respectiveprojects. Do not send your patch to us, we cannot accept it.
![Page 26: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/26.jpg)
Without dependencies
![Page 27: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/27.jpg)
Without dependencies
![Page 28: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/28.jpg)
Top contributors
![Page 29: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/29.jpg)
Ryan Dahl Creator of Node.js
![Page 30: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/30.jpg)
Isaac Schlueter
![Page 31: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/31.jpg)
Top contributors
![Page 32: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/32.jpg)
John Resig Creator of jQuery
![Page 33: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/33.jpg)
Top contributorsAlexei
Vladishev
![Page 34: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/34.jpg)
Huge Toad
![Page 35: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/35.jpg)
Bonus WTF
![Page 36: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/36.jpg)
Why duplicates?
![Page 37: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/37.jpg)
Oh, Unicode…
"Ja\u0304nis"
"J\u0101nis"
a + ̄
ā
![Page 38: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/38.jpg)
"Ja\u0304nis"
"J\u0101nis"
.gitconfig
as UTF-8
WHY???
![Page 39: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/39.jpg)
There are only 2 hard things in CS
Naming things
Cache invalidationOff by one errors
Time zonesUnicode special characters
![Page 40: Analyze and Visualize Git Log for Fun and Profit - DevTernity 2015](https://reader031.fdocuments.net/reader031/viewer/2022030303/587c18cf1a28abb5068b4bf7/html5/thumbnails/40.jpg)
https://eazybi.com/help/git
@rsim