blog dds

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 Mentors graph
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

Read and post comments, or share through   


Creative Commons License Last modified: Saturday, January 7, 2006 5:05 pm
Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-Share Alike 3.0 Greece License.