Verison with basically working graph analysis and generation

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Initial commit of R analysis scripts

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Move ID handling into a separate class

While at it, also free GNU R from the burden
of having to parse the eMail addresses once more.

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Augment graph with "classical" performance indicators

Align the background colour of vertices with the number
of lines modified. While at this, also generalise the
top-N-whatever functions (where whatever is now general,
for instance added lines, number of commits, etc.)

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Visualise commits per author

... by adjusting the frame width as a function of commit number.
Additionally, integrate the walktrap community detection algorithm

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Cleanups to persons.r

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Make the tag distinction more fine-grained

People cannot do much to prevent being added as CC to
a patch, so don't count this as an active relation.
CC is also sometimes used to point to mailing lists.

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
More fine-grained page rank calculation

Add a second variant so that both incoming and outgoing
links can be differently valued.
Also add an all-developers graph.

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Add per-author subsystem information

... in id_subsys.txt. Also include a small
argument parser so that the script can be run
fully automated.
Drive automation further


Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Add summary plot for the subsystem distribution

That is, visualise in which subsystems the author
in a community cluster are active. Also include
the raw data in the generated report, because the
plots can be misleading.

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Add automation script

which controls the whole process from data generation
to report production.

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Graph visualisation: Correct description

Highly multivariate visualisation is a difficult
thing, it would seem.

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Introduce .gitignore

Especially include some local working files that are
not suposed go go into the exported repository.

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Add copyright information

The code is licensed under GPLv2. Include an appropriate
header into the source files, and add the GPL text in
COPYING as usual.

Signed-off-by: Wolfgang Mauerer <wm@linux-kernel.net>
Setup directory for my system in testing code


Signed-off-by: Mitchell Joblin <joblin.m@gmail.com>
add functions to perform a file based commit analysis that does not use
tag information

Method: 
- get all commits for a particular file (withing a range)
- get snap shots of what the file looked like at the time of the commit 
- save all commmits together with snapshot information 

Data Structures:
- added a class called fileCommit to contains all commit data relevant
to a particular file, mainly stores the snap shot info for every commit
on a file at this point 

- VCS class uses the fileCommit class to create a dictionary where keys
are file names and values is a fileCommit object 

Signed-off-by: Mitchell Joblin <joblin.m@gmail.com>
Add functionality to compute the collaborative relationship between a
contributor (author or committer) based on proximity. If two
contributors contribute code in close proximity they are assumed to be
writing related code and share common goal/knowledge about a project. 

The main added functions are:
1) identify contiguous blocks of code from a single author or committer 
2) cluster the code blocks into groups located in some localized region
around the person of interest 
3) compute the strength of collaboration using a metric based on
distance of separation between code blocks

Currently only collaboration between contributors is being saved however
we could also do things like measure collaboration for an entire
file or collection of files. 



Signed-off-by: Mitchell Joblin <joblin.m@gmail.com>
New:
the ability to specify a revision range for the non-tag based analysis,
if no range is specified the entire commit history of a given file is
implied

Modified:
when specifying a revision range it turns out that some commits
captured during the git blame queries are not capture by the git log
query. I added a second git log query to capture all commits for the
file. This is inefficient but there doesn't seem to be an obvious
better solution at the moment. 


Signed-off-by: Mitchell Joblin <joblin.m@gmail.com>