projects
/
dupemerge
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
faster-dupemerge: version 0.20120103, update copyright year 2012,
[dupemerge]
/
faster-dupemerge
diff --git
a/faster-dupemerge
b/faster-dupemerge
index f7334d775cea316ffee6963cb6be11f4249297eb..2c85685b7056ba3c55abb05df99d84faf7aa34bb 100755
(executable)
--- a/
faster-dupemerge
+++ b/
faster-dupemerge
@@
-4,7
+4,7
@@
use Fcntl qw(:DEFAULT :flock);
use File::Compare;
use File::Temp;
use File::Compare;
use File::Temp;
-# Copyright (C) 2002-201
0
Zygo Blaxell <faster-dupemerge@mailtoo.hungrycats.org>
+# Copyright (C) 2002-201
2
Zygo Blaxell <faster-dupemerge@mailtoo.hungrycats.org>
# 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
# 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
@@
-155,13
+155,14
@@
hard links).
S, s - lstat(2) (see source for details)
U - unlink(2)
. - all inodes with similar attributes done
S, s - lstat(2) (see source for details)
U - unlink(2)
. - all inodes with similar attributes done
- (123456) - current file size in bytes
+
(123456) - current file size in bytes
--sort pass next options (up to --) to sort command
--timestamps mtime may be different for identical files
--sort pass next options (up to --) to sort command
--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).
--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
--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.20120103
USAGE
}
USAGE
}
@@
-242,7
+249,7
@@
while ($#ARGV >= 0) {
}
}
}
}
-@directories or usage;
+@directories or usage
($0)
;
if (defined($lock_file) && !$dry_run) {
sysopen(LOCK_FILE, $lock_file, O_CREAT|O_RDONLY, 0666) or die "open: $lock_file: $!";
if (defined($lock_file) && !$dry_run) {
sysopen(LOCK_FILE, $lock_file, O_CREAT|O_RDONLY, 0666) or die "open: $lock_file: $!";
@@
-405,7
+412,7
@@
incumbent_file:
}
if (format_inode($incumbent_dev, $incumbent_ino) ne $incumbent) {
}
if (format_inode($incumbent_dev, $incumbent_ino) ne $incumbent) {
- warn "$incumbent_file: expected inode $incumbent, found
$incumbent_dev:$incumbent_ino"
;
+ warn "$incumbent_file: expected inode $incumbent, found
".format_inode($incumbent_dev, $incumbent_ino)
;
$surprises++;
next incumbent_file;
}
$surprises++;
next incumbent_file;
}
@@
-426,7
+433,7
@@
candidate_file:
}
if (format_inode($candidate_dev, $candidate_ino) ne $candidate) {
}
if (format_inode($candidate_dev, $candidate_ino) ne $candidate) {
- warn "$candidate_file: expected inode $candidate, found
$candidate_dev:$candidate_ino"
;
+ warn "$candidate_file: expected inode $candidate, found
".format_inode($candidate_dev, $candidate_ino)
;
$surprises++;
next candidate_file;
}
$surprises++;
next candidate_file;
}
@@
-665,7
+672,7
@@
if ($humane) {
sub space_numbers {
my ($num) = @_;
sub space_numbers {
my ($num) = @_;
- 1 while $num =~ s/(\d)(\d\d\d)(
\d\d\d)*
$/$1 $2$3/os;
+ 1 while $num =~ s/(\d)(\d\d\d)(
(?: \d\d\d)*)
$/$1 $2$3/os;
$num = ' ' x ($max_num_len - length($num)) . $num;
return $num;
}
$num = ' ' x ($max_num_len - length($num)) . $num;
return $num;
}