- print "\n----------- $diff ------------\n";
- if ($apply) {
- undef @new;
- $default = 'N';
- system "rsync -a --delete cvsdir/ workdir";
- open(IN, "patch -d workdir -p0 --no-backup-if-mismatch -Z <../$diff |") or die $!;
- while (<IN>) {
- print $_;
- chomp;
- if (s/^patching file //) {
- push(@new, $_) unless -f "cvsdir/$_";
- } elsif (s/.* saving rejects to file //) {
- push(@rejects, $_);
- } elsif (/^Hunk #\d+ FAILED/) {
- $default = 'F';
- } elsif (/^Hunk #\d+ succeeded/) {
- $default = 'E' unless $default eq 'F';
- }
- }
- close IN;
- if ($default eq 'N') {
- generate_new_patch($diff);
- if (system("diff ../$diff new.patch >/dev/null") == 0) {
- print "\n(New patch is identical to old.)\n";
- }
- }
- $apply = 0;
- }
- print "\nFix rejects, Edit both diffs, Update patch,\n",
- "Apply patch again, Next, Quit: [$default] ";
+ print "\n----------- $diff ------------\n",
+ "\nFix rejects, Diff create, Edit both diffs, Update patch,\n",
+ "Apply patch again, !(CMD), Build rsync, Next, Quit: [$default] ";