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 2013/07/04 01:04:49 UTC
svn commit: r1499594 - /subversion/trunk/tools/dist/backport.pl
Author: danielsh
Date: Wed Jul 3 23:04:48 2013
New Revision: 1499594
URL: http://svn.apache.org/r1499594
Log:
* tools/dist/backport.pl
(handle_entry): After a merge, prompt the entry itself again, to allow
entering votes on it.
Frowned upon by: gstein
(for reasons unrelated to the commit itself)
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=1499594&r1=1499593&r2=1499594&view=diff
==============================================================================
--- subversion/trunk/tools/dist/backport.pl (original)
+++ subversion/trunk/tools/dist/backport.pl Wed Jul 3 23:04:48 2013
@@ -358,6 +358,9 @@ sub handle_entry {
if ($YES) {
merge %entry if $in_approved and not @vetoes;
} else {
+ # This loop is just a hack because 'goto' panics. The goto should be where
+ # the "next PROMPT;" is; there's a "last;" at the end of the loop body.
+ PROMPT: while (1) {
say "";
say "\n>>> The $entry{header}:";
say join ", ", map { "r$_" } @{$entry{revisions}} if @{$entry{revisions}};
@@ -373,7 +376,7 @@ sub handle_entry {
verbose => 1, extra => qr/[+-]/) {
when (/^y/i) {
merge %entry;
- MAYBE_DIFF: while (1) {
+ while (1) {
given (prompt "Shall I open a subshell? [ydN]", verbose => 1) {
when (/^y/i) {
system($ENV{SHELL} // "/bin/sh") == 0
@@ -385,7 +388,7 @@ sub handle_entry {
next;
}
}
- last;
+ next PROMPT;
}
# Don't revert. The next merge() call will do that anyway, or maybe
# the user did in his interactive shell.
@@ -402,6 +405,8 @@ sub handle_entry {
$votes->{$.} = ['edit', \%entry]; # marker for the 2nd pass
}
}
+ last;
+ }
}
# TODO: merge() changes ./STATUS, which we're reading below, but