Suppress spurious warnings in --dry-run mode
[dupemerge] / faster-dupemerge
index bc3a5afcbc180802af38153d471144ab5e31e6f4..fe23f8e70619443a8cc6fb3637dc6c07354b6ba5 100755 (executable)
@@ -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 (<FIND>) {
        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 (<FIND>) {
                $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;