Jazzy Coding

The Art of Structured Improvisation. By Carsten Nielsen

Tag Archives: statistics

git statistics: bash-one-liners

Are you interested in the statistics of your project? Who has done how many commits? On which week of the day or hour of day?
Well, here’s some food for you. Simple one-liners for the shell:

The committers-ranking by number of commits.

$> git shortlog  -ns

The commits of a project by weekday.

$> for i in Mon Tue Wed Thu Fri Sat Sun; do echo $( echo " $i: "; git shortlog  -n --format='%ad %s'| grep "$i " | wc -l); done

The commits of a project by weekday since a defined date. Interesting to see the difference ex. after a project has been released as open-source or the project-team has changed. You can change the option ‘since’ to ‘until’ if you want to count the commits before a defined date.

$> for i in Mon Tue Wed Thu Fri Sat Sun; do echo $( echo " $i: "; git shortlog  -n --format='%ad %s' --since='2011-06-31'| grep "$i " | wc -l); done

The commits of a project by hour of day. (Updated after the hint from Patrik. Thanks!)

$> for i in `seq -w 0 23`; do echo $( echo " $i:"; git shortlog  -n --format='%ad %s' | grep " $i:" | wc -l); done

The commits of a project by hour of day before a defined date. Even here you can change the option ‘until’ to ‘since’ if needed.

$> for i in `seq -w 0 23`; do echo $( echo " $i:"; git shortlog  -n --format='%ad %s' --until='2011-06-31' | grep " $i:" | wc -l); done