My version of Wesley W. Terpstra's patch.
[rsync/rsync-patches.git] / verify-patches
index 0a786ea..64ae506 100755 (executable)
@@ -90,13 +90,13 @@ foreach my $diff (@ARGV) {
            my $dep = $1;
            $has_dependencies = 1;
            print "\nApplying dependency patch $dep...\n";
-           if (system("patch -d cvsdir -p1 -b -Vt <patches/$dep") != 0) {
+           if (system("patch -f -d cvsdir -p1 -b -Vt <patches/$dep") != 0) {
                print "Unable to cleanly apply dependency patch -- skipping $diff\n";
                system "rm -f cvsdir/*.rej cvsdir/*/*.rej";
                &restore_cvsdir;
                next DIFF;
            }
-           sleep(1) if $prepare_source; # Ensure later diffs get later times.
+           sleep(1); # Ensure later diffs get later times.
        }
        if (!defined($conf_opts) && s#^\s+\./configure\s+##) {
            chomp($conf_opts = $_);
@@ -210,11 +210,11 @@ sub apply_patch
     my($diff) = @_;
 
     undef @new;
-    system "rsync -a --delete --exclude='*~' cvsdir/ workdir/";
+    system "rsync -a --del --exclude='*~' cvsdir/ workdir/";
     print "\nApplying patch $diff...\n";
     undef @rejects;
     my($saw_offset, $saw_fuzz);
-    open(IN, "patch -d workdir -p1 --no-backup-if-mismatch <patches/$diff |") or die $!;
+    open(IN, "patch -f -d workdir -p1 --no-backup-if-mismatch <patches/$diff |") or die $!;
     while (<IN>) {
        print $_;
        chomp;
@@ -222,6 +222,8 @@ sub apply_patch
            push(@new, $_) unless -f "cvsdir/$_";
        } elsif (s/.* saving rejects to file //) {
            push(@rejects, $_);
+       } elsif (/No file to patch\.\s+Skipping patch/) {
+           push(@rejects, 'skipped.file');
        } elsif (/^Hunk #\d+ succeeded at \d+( with fuzz $interesting_fuzz)?/o) {
            $saw_fuzz ||= defined $1;
            $saw_offset = 1;