]> git.llucax.com Git - mecon/scripts.git/blob - log_trace/log_trace.pl
Se agrega base.epl necesario para los sistemas en embperl.
[mecon/scripts.git] / log_trace / log_trace.pl
1 #!/usr/bin/perl
2 #
3 # Scrip que muestra en forma grafica la evolucion de los commits
4 #
5 # by Ricardo Markiewicz <rmarkie@fi.uba.ar>
6 #
7 # The PlaQui Development Team
8 #
9 # $Id$
10
11 my %hash, %users, $texto. $max;
12
13 if (shift eq "-d") {
14         $texto = `svn log > ChangeLog`;
15 }
16 $texto = `egrep r[0-9]+ ChangeLog`;
17
18 @lines = split(/\n/, $texto);
19
20 $max = -1;
21 foreach $line (@lines) {
22         @datos = split(/ /, $line);
23         $hash{$datos[4]}++;
24         $users{$datos[4]}{$datos[2]}++;
25         if ($hash{$datos[4]} > $max) {
26                 $max = $hash{$datos[4]};
27         }
28 }
29
30 print "PlaQui - Grafica de Progreso SVN\n";
31 print "--------------------------------\n\n";
32 print "Fecha\t\tCantidad de Commits\n";
33 foreach $date (sort keys %hash) {
34         print "$date\t";
35         
36         $win = "";
37         $win_pts = -1;
38         foreach $name (keys %{$users{$date}}) {
39                 if ($users{$date}{$name} > $win_pts) {
40                         $win = $name;
41                         $win_pts = $users{$date}{$name};
42                 } else {
43                         if ($users{$date}{$name} == $win_pts) {
44                                 $win = $win."|".$name;
45                         }
46                 }
47         }
48
49         for($i=0; $i<$max; $i++) {
50                 if ($i < $hash{$date}) {
51                         print "*";
52                 } else {
53                         print " ";
54                 }
55         }
56         print "  ($win)";
57         print "\n";
58 }
59
60 print "\n";
61 print "Cantidad de commits por usuario:\n";
62 print `egrep r[0-9]+ ChangeLog | awk '{print \$3}' | sort | uniq -c | sort -r`;
63 print "\n";
64 print "( ) = Máximo/s Commiteador/es del Día | ";
65 print "* == 1 Commit\n";
66