2006.01.07
A Tree of Mentors
In the FreeBSD project, new committers are assigned a mentor who overlooks their work, until they are judged to be confident enough to work on their own. As lots of things in the open-source landscape, having a mentor is a loan, which we should pay back by mentoring somebody else.
CVS commit messages typically indicate the name of the mentor who approved a given commit. I went through the CVS commit logs and found-out 168 mentor-mentee relationships, which I then plotted as a directional graph with GraphViz.
Here is the result
and this is the shell script that generated it.
for i in doc ports src www
do
find $i -type f |
grep -v CVS |
xargs cvs -d /home/ncvs log -SN 2>/dev/null
done |
awk '/^date/{author = $5}/^Approved by:.*mentor/{print author, $0}' |
sed -n 's/co.mentor/mentor/;s/backup //;s/@//;s/^\([^;]*\);.*[^a-z]\([a-z][a-z]*\) *(mentor.*/\1 \2/p' |
sort -u |
awk 'BEGIN{print "digraph D {"}{print $2, "->", $1}END{print "}"}' |
dot -omentors.png -Tpng