#!/usr/bin/perl -w # # Use: revcount.pl ) { if (/^#/) { $change_groups++; $changes += keys %types; $bsingles++ if $lines - $last_blines == 1; $last_blines = $lines; $singles++ if $cnt - $last_noblines == 1; $last_noblines = $cnt; %types = (); next; } $lines++; @a = split /\001/; $a[0] =~ s|(.*)/.*|$1|; if ($a[3] eq 'dead') { $types{del} = 1, $cnt++, $cnt{$a[4]}++, $files{$a[4]}{$a[0]} = 1 unless $a[6] eq '-'; } else { $types{add} = 1, $cnt++, $cnt{$a[4]}++, $files{$a[4]}{$a[0]} = 1 unless $a[5] =~ /^-:/; $a[5] =~ s/^-://; if ($a[5] ne '-') { $types{branch} = 1; for my $line (split /:/, $a[5]) { $cnt++; $cnt{$line}++; $files{$line}{$a[0]} = 1; } } } } $changes += keys %types; $singles++ if $cnt - $last_noblines == 1; $bsingles++ if $lines - $last_blines == 1; print "revs: $cnt\n"; print "change groups: $change_groups\n"; print "changes: $changes\n"; print "single file changes: $bsingles ($singles w/o branches)\n"; print "\nrevs/files per branch:\n"; for my $line (sort { $cnt{$b} <=> $cnt{$a} } keys %cnt) { print "$line: $cnt{$line}/", scalar(keys %{$files{$line}}), "\n"; }