Initial commit

First commit of gitdm to the new repo.  Call it version 0.10 or something
silly like that.
gitdm: Report progress to stderr not stdout

When gitdm is used for generating text-only report with its output
redirected to a file, all is well aside from the clutter at the beginning
of that file -- a very long line with repeating "Grabbing changesets...".

Solve that by redirecting progress reporting to stderr. It also helps to
see the progress when you redirect gitdm output to a file.

Also, we don't have to flush stdout since stderr is unbuffered by default.

Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
A bunch of domain map additions from Greg
Get rid of a debugging print statement.

Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Move regular expressions out to patterns.py

...I need them for an associated tool I'm working on.
Fix up the copyright notices.
make -c option actually work

The -c option was not fully implemented

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
parse the config file _after_ we have read the command line options

Otherwise it doesn't matter if we change the config file option or not...

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
finally get the config file stuff correct

Need to seed the database _after_ loading the config file,
otherwise we don't see the seeds as actually showing up for their
companies.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Don't accept totally bogus dates

Yanmin Zhang committed a patch (09f2724a786f76475ef2985cf84f5359c553aade)
which claims to have been written in August, 2030.  Code that bleeding-edge
makes gitdm confused, so pretend it's just normal, contemporary stuff.
gitdm patch ...

Hi guys,

	I knocked up a patch to generate some per-month, by-affiliation
statistics from the gitdm output; attached for interest or merging.

	A sample of the output, complete with OO.o data-pilot, and pretty chart
is here:

http://www.gnome.org/~michael/data/2008-09-29-linux-stats.ods

	with chart here:
	http://www.gnome.org/~michael/images/2008-09-29-kernel-active.png

	caption being:

	"Graph showing number and affiliation of active kernel developers
(contributing more than 100 lines per month). Quick affiliation key,
from bottom up: Unknown, No-Affiliation, IBM, RedHat, Novell, Intel ..."

	These are as yet not published, I plan to use them as a comparison to
OO.o's somewhat mediocre equivalents; hope to go live with them soon
(and fix the horrible bugs in stacked area charts to make them actually
pretty ).

	HTH,

		Michael.

--
 michael.meeks@novell.com  <><, Pseudo Engineer, itinerant idiot

Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Use find() instead of index()

That keeps it from crashing on seemingly malformed addresses.  Change
suggested by Dave Foster.

Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Tested-by / Reported-by credits and more

Add tracking of tested-by, reported-by, and reviewed-by.  For the first
two, we also track who is *giving* those credits.

While I was in the neighborhood I also:

 - Started turning the "patch" class into something more than a bare
   container; this work has just begin.

 - Moved the report-writing code into its own file (reports.py)
Better email address handling

Some people quote their names in various tags:

     Something-done-by: "J Random Hacker" <...>

We kept the quotes with the name, confusing things down the road.  So
change the patterns to exclude those quotes when they exist.
A quick and dirty treeplot utility

This is a tool to make a graphviz input file describing the patch flow into
the mainline.
Sort the output text

...also make a pseudo tree for changesets which go straight to the
mainline.
Add a copyright notice to treeplot
Make the internal merge pattern a bit more general
Quick hack to make the developer/employer counts at the top correct

...before we were counting everybody we knew about, regardless of whether
they did anything in the period we're looking at.
Reduce the number of "funky email" gripes

Addresses of the form "user at host.wherever" can be trivially repaired, so
let's do so.

A couple of other minor tweaks are included here as well; nothing which
changes behavior.