X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=faster-dupemerge;h=fe23f8e70619443a8cc6fb3637dc6c07354b6ba5;hb=f8527d273c71e1dc1302cfe9e854d6a57cf9b48b;hp=bc3a5afcbc180802af38153d471144ab5e31e6f4;hpb=f8a17dc3c61e9daac88a105715e3584da6cec32a;p=dupemerge diff --git a/faster-dupemerge b/faster-dupemerge index bc3a5af..fe23f8e 100755 --- a/faster-dupemerge +++ b/faster-dupemerge @@ -355,6 +355,7 @@ hash_file: foreach my $filename (sort keys(%{$inode_to_file_name{$candidate}})) { print STDERR "\t\tDigesting file $filename\n" if $debug; if ((-l $filename) || ! -f _) { + print STDERR "\n" if $progress; warn "Bogon file " . tick_quote($filename); $input_bogons++; delete $inode_to_file_name{$candidate}->{$filename}; @@ -540,7 +541,7 @@ candidate_file: if ($link_done) { delete $inode_to_file_name{$to_inode}->{$to_file}; - $inode_to_file_name{$from_inode}->{$to_file} = undef; + $inode_to_file_name{$from_inode}->{$to_file} = undef unless ($dry_run); $hash_to_inode{$digest} = [ $from_inode ]; $hard_links++; @@ -587,6 +588,8 @@ end_merge: undef %inode_to_file_name; } +my $last_time = 0; + while () { my ($weak_key, $size, $dev, $ino, $name) = m/^((\d+) \d+ \d+ \d+ -?[\d.]+) (\d+) (\d+) (.+)\0$/so; die "read error: $!\nLast input line was '$_'" unless defined($name); @@ -603,6 +606,14 @@ while () { $skip_compares = $skip_compare_preference; } + if ($progress) { + my $this_time = time(); + if ($this_time != $last_time) { + $last_time = $this_time; + print STDERR "($size)"; + } + } + $input_links++; merge_files if $weak_key ne $current_key; $current_key = $weak_key;