]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - log_trace.pl
929824ab49b6fd0def386cb4e157b5c38481e2cb
[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, $texto. $max;
10
11 if (shift eq "-d") {
12         $texto = `svn log > ChangeLog`;
13 }
14 $texto = `egrep r[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         if ($hash{$datos[5]} > $max) {
24                 $max = $hash{$datos[5]};
25         }
26 }
27
28 print "PlaQui - Grafica de Progreso SVN\n";
29 print "--------------------------------\n\n";
30 print "Fecha\t\tCommits\n";
31
32 foreach $date (sort keys %hash) {
33         print "$date\t";
34         
35         $win = "";
36         $win_pts = -1;
37         foreach $name (keys %{$users{$date}}) {
38                 if ($users{$date}{$name} > $win_pts) {
39                         $win = $name;
40                         $win_pts = $users{$date}{$name};
41                 } else {
42                         if ($users{$date}{$name} == $win_pts) {
43                                 $win = $win."|".$name;
44                         }
45                 }
46         }
47
48         for($i=0; $i<$max/2; $i++) {
49                 if ($i < $hash{$date}/2) {
50                         print "*";
51                 } else {
52                         print " ";
53                 }
54         }
55         print "  ($win)";
56         print "\n";
57 }
58
59 print "\n";
60 print "Cantidad de commits por usuario:\n";
61 print `egrep r[0-9]+ ChangeLog | awk '{print \$3}' | sort | uniq -c | sort -r`;
62 print "\n";
63 print "( ) = Máximo/s Commiteador/es del Día | ";
64 print "* == 2 Commit\n";
65