gh-ost/script/showdups
Ruud H.G. van Tol e01ea1c0de Tweaks
Really, just tweaks.
2017-10-27 02:28:10 +02:00

38 lines
860 B
Perl
Executable File

#!/usr/bin/env perl
use v5.10;
use warnings;
open my $fh, "-|", "git ls-tree -r HEAD"
or die $!;
my %fs_sha1_path;
while ( my $line= <$fh> ) {
chomp $line;
if ( $line =~ m{ \A \d+ \s+ \w+ \s+ (\w+) \s+ (.*) \z }x ) {
my ( $sha1, $path )= ($1, $2 );
if ( -f $path and !-l $path ) {
my $fs= -s $path;
$fs and push @{ $fs_sha1_path{ $fs }{ $sha1 } }, $path;
};
}
}
for my $fs ( sort { $a <=> $b } keys %fs_sha1_path ) {
for my $sha1 ( sort keys %{ $fs_sha1_path{ $fs } } ) {
if ( @{ $fs_sha1_path{ $fs }{ $sha1 } } > 1 ) {
for my $path ( sort @{ $fs_sha1_path{ $fs }{ $sha1 } } ) {
say sprintf "%10d %s..%s %s",
$fs, substr($sha1,0,7), substr($sha1,-3), $path;
}
say '-', ' -' x 39;
}
}
}
exit;
__END__