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