Created
September 8, 2014 22:06
-
-
Save kahrl/9135ee4a92693dc2c051 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Relevant history: | |
# | |
# commit 1995b59320fe0fdced55c4605635f38cc42768f1 (2011-04-23) | |
# Moved lots of code from main.cpp:main() to game.cpp:the_game() | |
# | |
# commit 4e249fb3fbf75f0359758760d88e22aa5b14533c (2010-09-27) | |
# First git commit. Minetest existed before then but not in git. | |
# | |
#git log --before=2013-01-01 --pretty=format:%H -1 | |
plotfile=the_game_graph.gnuplot | |
pngfile=the_game_graph.png | |
echo > $plotfile | |
echo "set terminal png size 900, 300" >> $plotfile | |
echo "set output \"$pngfile\"" >> $plotfile | |
echo "set yrange [0:3000]" >> $plotfile | |
echo "set xdata time" >> $plotfile | |
echo "set timefmt \"%Y-%m-%d\"" >> $plotfile | |
echo "set format x \"%Y-%m\"" >> $plotfile | |
echo "plot [:][:] '-' using 1:2 title \"Length of main()\" with lines, '-' using 1:2 title \"Length of the_game()\" with lines" >> $plotfile | |
########### | |
function collect_data() { | |
lastdate= | |
while [ "$currentdate" != "$enddate" ]; do | |
currentdate=$(date +%Y-%m-%d -d "$currentdate +1 day") | |
if [ "${currentdate:0:4}" != "${lastdate:0:4}" ]; then | |
echo "Processing year: ${currentdate:0:4}" | |
fi | |
lastdate=$currentdate | |
commithash=$(git log master --before=$currentdate --pretty=format:%H -1) | |
millikloc=$(git show $commithash:$culpritfile | awk "BEGIN { state = 0; n = 0; } /^$culpritreturntype $culpritfunc\(/ { state=1 } { if ( state == 1 ) { n = n+1 } } /^}/ { if ( state == 1 ) { state = 2 } } END { print n }") | |
echo "$currentdate $millikloc" >> $plotfile | |
done | |
echo "e" >> $plotfile | |
} | |
########### | |
echo 'Processing data for main()' | |
culpritfile=../src/main.cpp | |
culpritfunc=main | |
culpritreturntype=int | |
currentdate=2010-09-27 | |
enddate=$(date +%Y-%m-%d) | |
collect_data | |
########### | |
echo 'Processing data for the_game()' | |
culpritfile=../src/game.cpp | |
culpritfunc=the_game | |
culpritreturntype=void | |
currentdate=2011-04-24 | |
enddate=$(date +%Y-%m-%d) | |
collect_data | |
########### | |
if gnuplot $plotfile; then | |
echo "Graph has been written to $pngfile." | |
else | |
echo "Error: gnuplot failed." | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment