You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2014/02/18 10:23:52 UTC
svn commit: r1569242 - /subversion/trunk/tools/dist/backport.pl
Author: danielsh
Date: Tue Feb 18 09:23:51 2014
New Revision: 1569242
URL: http://svn.apache.org/r1569242
Log:
backport.pl: Clean up revert-before-merge logic. No functional change.
* tools/dist/backport.pl
(merge): Concentrate all the logic governing revert in one place.
(revert): Grow optional discard_STATUS argument.
Modified:
subversion/trunk/tools/dist/backport.pl
Modified: subversion/trunk/tools/dist/backport.pl
URL: http://svn.apache.org/viewvc/subversion/trunk/tools/dist/backport.pl?rev=1569242&r1=1569241&r2=1569242&view=diff
==============================================================================
--- subversion/trunk/tools/dist/backport.pl (original)
+++ subversion/trunk/tools/dist/backport.pl Tue Feb 18 09:23:51 2014
@@ -220,7 +220,6 @@ sub prompt {
sub merge {
my %entry = @_;
- $MERGED_SOMETHING++;
my ($logmsg_fh, $logmsg_filename) = tempfile();
my ($mergeargs);
@@ -258,13 +257,6 @@ set -e
if $sh[$DEBUG]; then
set -x
fi
-if ! $sh[$MAY_COMMIT] ; then
- cp STATUS STATUS.$$
-fi
-$SVNq revert -R .
-if ! $sh[$MAY_COMMIT] ; then
- mv STATUS.$$ STATUS
-fi
$SVNq up
$SVNq merge $mergeargs
if [ "`$SVN status -q | wc -l`" -eq 1 ]; then
@@ -317,6 +309,10 @@ EOF
warn "Local mods saved to '$backupfile'\n";
}
+ # If $MAY_COMMIT, then $script will edit STATUS anyway.
+ revert(verbose => 0, discard_STATUS => $MAY_COMMIT);
+
+ $MERGED_SOMETHING++;
open SHELL, '|-', qw#/bin/sh# or die "$! (in '$entry{header}')";
print SHELL $script;
close SHELL or warn "$0: sh($?): $! (in '$entry{header}')";
@@ -623,12 +619,14 @@ EOVIM
sub revert {
my %args = @_;
die "Bug: \$args{verbose} undefined" unless exists $args{verbose};
- copy $STATUS, "$STATUS.$$.tmp";
+ die "Bug: unknown argument" if grep !/^(?:verbose|discard_STATUS)$/, keys %args;
+
+ copy $STATUS, "$STATUS.$$.tmp" unless $args{discard_STATUS};
system("$SVN revert -q $STATUS") == 0
or die "revert failed ($?): $!";
system("$SVN revert -R ./" . (" -q" x !$args{verbose})) == 0
or die "revert failed ($?): $!";
- move "$STATUS.$$.tmp", $STATUS;
+ move "$STATUS.$$.tmp", $STATUS unless $args{discard_STATUS};
$MERGED_SOMETHING = 0;
}