]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - log_trace.pl
Se corrigen detalles en la documentacion.
[z.facultad/75.42/plaqui.git] / 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 my %hash, %users, %commits, %lines_count, $texto. $max;
10
11 if (shift eq "-d") {
12         $texto = `svn log > ChangeLog`;
13 }
14 $texto = `egrep "rev [0-9]+" ChangeLog`;
15
16 @lines = split(/\n/, $texto);
17
18 $max = -1;
19 foreach $line (@lines) {
20         @datos = split(/ /, $line);
21         $hash{$datos[5]}++;
22         $users{$datos[5]}{$datos[3]}++;
23         $commits{$datos[3]}++;
24         $lines_count{$datos[3]} += $datos[13];
25         if ($hash{$datos[5]} > $max) {
26                 $max = $hash{$datos[5]};
27         }
28 }
29
30 print "PlaQui - Grafica de Progreso SVN\n";
31 print "--------------------------------\n\n";
32 print "Fecha\t\tCommits\n";
33
34 foreach $date (sort keys %hash) {
35         print "$date\t";
36         
37         $win = "";
38         $win_pts = -1;
39         foreach $name (keys %{$users{$date}}) {
40                 if ($users{$date}{$name} > $win_pts) {
41                         $win = $name;
42                         $win_pts = $users{$date}{$name};
43                 } else {
44                         if ($users{$date}{$name} == $win_pts) {
45                                 $win = $win."|".$name;
46                         }
47                 }
48         }
49
50         for($i=0; $i<$max/2; $i++) {
51                 if ($i < $hash{$date}/2) {
52                         print "*";
53                 } else {
54                         print " ";
55                 }
56         }
57         print "  ($win)";
58         print "\n";
59 }
60
61 print "\n";
62 print "Cantidad de commits por usuario:\n";
63 foreach $user (sort keys %commits) {
64         print "\t$user\t$commits{$user}\t($lines_count{$user} lineas)\n";
65 }
66 print "\n";
67 print "( ) = Máximo/s Commiteador/es del Día | ";
68 print "* == 2 Commit\n";
69