diff --git a/commit-patch b/commit-patch index 31e9f76..8b3f222 100755 --- a/commit-patch +++ b/commit-patch @@ -223,9 +223,11 @@ my ($out, $working_patch, $non_committed_patch); run([split(/ /,$vc{add}), @files], '>', \$out, '2>', \$err);# Expect these 2 to fail when run([split(/ /,$vc{remove}), @files], '>', \$out, '2>', \$err);# there are no new files. run([split(/ /,$vc{diff}), @files], '>', \$working_patch, '2>', \$err);# CVS diff dies. Sigh. or die "$err\n"; -run(["interdiff", $vc{patcharg}, $patch, '-'], '<', \$working_patch, - '>', \$non_committed_patch, '2>', \$err) or die "$err\n"; -run(["patch", $vc{patcharg}, "-R"], '<', \$working_patch, '>', \$out, '2>', \$err) or die "$out\n$err\n"; +unless ($working_patch =~ /^\s*$/s) { + run(["interdiff", $vc{patcharg}, $patch, '-'], '<', \$working_patch, + '>', \$non_committed_patch, '2>', \$err) or die "$err\n"; + run(["patch", $vc{patcharg}, "-R"], '<', \$working_patch, '>', \$out, '2>', \$err) or die "$out\n$err\n"; +} run(["patch", $vc{patcharg}], '<', $patch, '>', \$out, '2>', \$err) or die "$out\n$err\n"; # Don't capture stdout or stderr because it can be interactive (cough cough darcs) run([split(/ /,$vc_commit), @message_opt, @files],debug => 0) or die "commit failed.\n";