X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=dupemerge;a=blobdiff_plain;f=faster-dupemerge;h=62f4bc99c47b401bff653a252366eb9ef11e28e2;hp=4cdef9716fd5e5de600b9810a198936ca9d46301;hb=4f5affec900edd9b4b9acc4c390bfed4c91fb248;hpb=23c7e99553642fe0fb150f3b1aa5d72c2be8d50a diff --git a/faster-dupemerge b/faster-dupemerge index 4cdef97..62f4bc9 100755 --- a/faster-dupemerge +++ b/faster-dupemerge @@ -4,7 +4,7 @@ use Fcntl qw(:DEFAULT :flock); use File::Compare; use File::Temp; -# Copyright (C) 2002-2010 Zygo Blaxell +# Copyright (C) 2002-2012 Zygo Blaxell # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -42,11 +42,11 @@ my $lost_bytes = 0; my $surprises = 0; eval ' - use Digest::SHA1 qw(sha1 sha1_hex sha1_base64); + use Digest::SHA qw(sha1 sha1_hex sha1_base64); '; if ($@) { - warn "Digest::SHA1: $@\nUsing external md5sum program to generate hashes.\nPlease install Digest::SHA1 (libdigest-sha1-perl)"; + warn "Digest::SHA: $@\nUsing external md5sum program to generate hashes.\nPlease install Digest::SHA"; eval <<'DIGEST'; sub really_digest { @@ -72,7 +72,7 @@ DIGEST sub really_digest { my ($filename) = (@_); die "'$filename' is not a plain file" if (-l $filename) || ! (-f _); - my $ctx = Digest::SHA1->new; + my $ctx = Digest::SHA->new; sysopen(FILE, $filename, O_RDONLY|O_NONBLOCK) or die "open: $filename: $!"; binmode(FILE); # FIXME: Necessary? Probably harmless... $ctx->addfile(\*FILE); @@ -161,7 +161,8 @@ hard links). --timestamps mtime may be different for identical files - --skip-compare skip byte-by-byte file comparisons + --skip-compare skip byte-by-byte file comparisons, + compare only file hashes --skip-hash[=N] skip calculation of hash function on files larger than N bytes (default 1M). @@ -174,6 +175,12 @@ hard links). --verbose report files as they are considered --zeros hard-link zero-length files too + +--skip-compare and --skip-hash can be combined, in which case a file is +either hashed (if it is below the --skip-hash size threshold) or compared +(if it is above), but never both. + +Version: 0.20120914 USAGE }