The code was done over several quick sessions (there's a visualisation of that in the link above) so it's really scrappy, but it pulls out the timestamps of a programmers commits and presents that in several different formats. It uses Github API or just SVN log.
Cool, never used hg, thanks.
Git might have a module; I've never seen it if it does.
However, having it separate to git means we can pull in other data to build up a complete picture of the users activity - the comments made in an issue tracker for instance.
Comments
I once spent a weekend hacking together something like this.
http://jarofgreen.co.uk/2011/04/introducing-creepycoder/
The code was done over several quick sessions (there's a visualisation of that in the link above) so it's really scrappy, but it pulls out the timestamps of a programmers commits and presents that in several different formats. It uses Github API or just SVN log.
https://github.com/jarofgreen/CreepyCoder
I agree with you that LOC is not really a great metric.
Next I was going to look at separating variables in the data & comparing them - eg, see two programmers commit habits side-by-side.
I've also been to a talk by a company that pulled stats from commit logs, will try to find it and post it.
This was the talk ... http://www.edinburgh.bcs.org/events/2010-11/110411.htm
> http://jarofgreen.co.uk/2011/04/introducing-creepycoder/
hg has a pretty great extension shipped with it doing that kind of stats collecting: churn. Git might have something similar already, no?
For instance, your graphs 2 and 3 (commits by hour of day and commits by day of week) can be obtained through the following (tested on pypy's repo):
(-c counts changesets rather than diff lines; -s sorts by aggregation key rather than resultcount; -f aggredates on an strftime-like dateformat)Cool, never used hg, thanks. Git might have a module; I've never seen it if it does. However, having it separate to git means we can pull in other data to build up a complete picture of the users activity - the comments made in an issue tracker for instance.