Author: pawelz
Date: Thu Apr 1 00:59:43 2010
New Revision: 11290
Added:
toys/cvsstats/count.sql
toys/cvsstats/generate.sh (contents, props changed)
Log:
- scripts for generating stats from database
Added: toys/cvsstats/count.sql
==============================================================================
--- (empty file)
+++ toys/cvsstats/count.sql Thu Apr 1 00:59:43 2010
@@ -0,0 +1,86 @@
+-- First of all copy commits FROM last month to separate table
+
+DROP TABLE IF EXISTS commi...@y@_...@m@;
+DROP TABLE IF EXISTS fil...@y@_...@m@;
+
+CREATE TABLE commi...@y@_...@m@ (
+ author VARCHAR(255),
+ date DATETIME,
+ tag VARCHAR(255),
+ files INTEGER,
+ hunks INTEGER,
+ added INTEGER,
+ removed INTEGER
+);
+
+CREATE TABLE fil...@y@_...@m@ (
+ filename VARCHAR(255),
+ date DATETIME,
+ author VARCHAR(255),
+ tag VARCHAR(255),
+ hunks INTEGER,
+ added INTEGER,
+ removed INTEGER
+);
+
+INSERT INTO fil...@y@_...@m@ SELECT * FROM files WHERE date LIKE
'@y...@-@m...@-%';
+INSERT INTO commi...@y@_...@m@ SELECT * FROM commits WHERE date LIKE
'@y...@-@m...@-%';
+
+
+SELECT('----');
+SELECT('Total number of commits:');
+SELECT count(*) FROM commi...@y@_...@m@;
+
+SELECT('----');
+SELECT('Number of touched files:');
+SELECT count(distinct filename) FROM fil...@y@_...@m@;
+
+SELECT('----');
+SELECT('Number of authors that commited at least once:');
+SELECT count(distinct author) FROM commi...@y@_...@m@;
+
+SELECT('----');
+SELECT('Number of hunks:');
+SELECT sum(hunks) FROM commi...@y@_...@m@;
+
+SELECT('----');
+SELECT('Number of added lines:');
+SELECT sum(added) FROM commi...@y@_...@m@;
+
+SELECT('----');
+SELECT('Number of removed lines:');
+SELECT sum(removed) FROM commi...@y@_...@m@;
+
+SELECT('----');
+SELECT('Number of commits per author:');
+SELECT author, count(*) AS `Number of commits` FROM commi...@y@_...@m@ GROUP
BY author ORDER BY `Number of commits` DESC LIMIT 3;
+
+SELECT('----');
+SELECT('Most hard-working developers (in terms of numbers of changed lines in
their commits) were:');
+SELECT author, sum(added)+sum(removed) AS `Number of changed lines`,
sum(added), sum(removed) FROM commi...@y@_...@m@ GROUP BY author ORDER BY
`Number of changed lines` DESC LIMIT 3;
+
+SELECT('----');
+SELECT('Most creative developers (numbers of added lines/number of removed
lines) were:');
+SELECT author, sum(added)/sum(removed) AS `Points`, sum(added), sum(removed)
FROM commi...@y@_...@m@ GROUP BY author ORDER BY `Points` DESC LIMIT 3;
+
+SELECT('----');
+SELECT('Most destructive developers (same as above, but bottom three) were:');
+SELECT author, sum(added)/sum(removed) AS `Points`, sum(added), sum(removed)
FROM commi...@y@_...@m@ GROUP BY author ORDER BY `Points` ASC LIMIT 3;
+
+SELECT('----');
+SELECT('Most actively developed files (in terms of number of commits) were:');
+SELECT filename, count(*) AS `Number of commits` FROM fil...@y@_...@m@ GROUP
BY filename ORDER BY `Number of commits` DESC LIMIT 20;
+
+SELECT('----');
+SELECT('Most changed files (in terms of modified lines) were:');
+SELECT filename, sum(added) + sum(removed) AS `Changed lines` FROM
fil...@y@_...@m@ GROUP BY filename ORDER BY `Changed lines` DESC LIMIT 20;
+
+SELECT('----');
+SELECT('Number of commits per author (full table):');
+SELECT author, count(*) AS `Number of commits` FROM commi...@y@_...@m@ GROUP
BY author ORDER BY `Number of commits` DESC;
+
+SELECT('----');
+SELECT('Most hard-working developers (full table):');
+SELECT author, sum(added)+sum(removed) AS `Number of changed lines`,
sum(added), sum(removed) FROM commi...@y@_...@m@ GROUP BY author ORDER BY
`Number of changed lines` DESC;
+
+-- vim:tabstop=2
Added: toys/cvsstats/generate.sh
==============================================================================
--- (empty file)
+++ toys/cvsstats/generate.sh Thu Apr 1 00:59:43 2010
@@ -0,0 +1,11 @@
+#!/bin/sh
+if [ '$#' != 2 ]; then
+ echo "Usage: $0 YYYY MM"
+ exit
+fi
+
+YEAR=$1
+MONTH=$2
+
+sed -e "s,@Y@,$MONTH,g;s,@M@,$YEAR,g" < count.sql \
+ | mysql -upldstats -p pldstats -t > statystyki-$YEAR-$MONTH
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit