Two features of backport.pl that people may not be aware of: 1) backport.pl can automate most of the process of entering a new nomination.
Here's an example: [[[ % cd 1.9.x-wc % ../trunk-wc/tools/dist/nominate.pl r1664080 "Definition should match declaration." Index: STATUS =================================================================== --- STATUS (revision 1664162) +++ STATUS (working copy) @@ -127,6 +127,13 @@ strictly a regression as it is no longer possible to determine whether the CHECK_LOCKS flag is set on a txn.) + * r1664080 + Add missing const to argument. + Justification: + Definition should match declaration. + Votes: + +1: danielsh + Veto-blocked changes: ===================== Commit this nomination? y Authentication realm: <https://svn.apache.org:443> ASF Committers Password for 'danielsh': ]]] nominate.pl wrote the nomination and inserted it in the correct place in the file. It grabbed my username from ~/.subversion/auth/, the "Justification" from argv[2] which I provided, and used the first paragraph of the log message as the first paragraph of the entry. I just had to type 'y' and the commit would have gone through. (r1664080 doesn't need to be backported, so I didn't really nominate it; that was just an example.) 2) backport.pl can be used interactively (on a committers' workstation) to review nominations. Example workflow: [[[ % cd 1.9.x-wc % ../trunk-wc/tools/dist/backport.pl >>> The r1663338 group: r1663338, r1663347 Properly record resolving of individual property conflicts. +1: rhuijben Run a merge? [y,l,v,±1,±0,q,e,a, ,N,?] v # Show the full entry, # including "Justification:" # and "Notes:". * r1663338, r1663347 Properly record resolving of individual property conflicts. Justification: Fixes a few implementation bugs in the resolver code and exposes the api for more users than those that pass a callback function. Votes: +1: rhuijben Run a merge? [y,l,v,±1,±0,q,e,a, ,N,?] l # Show log. <the following was displayed in my pager> ------------------------------------------------------------------------ r1663338 | rhuijben | 2015-03-02 16:01:09 +0000 (Mon, 02 Mar 2015) | 10 lines Fix per property resolving of the interactive conflict resolver. Before this patch the same choice was in many (if not most) cases applied to more than one property conflict. ... ------------------------------------------------------------------------ <at this point, I quit the pager> Run a merge? [y,l,v,±1,±0,q,e,a, ,N,?] y # Run a merge, but Would have committed: # will not commit it (unless designated environment var set) [[[ M . M subversion/libsvn_wc/conflicts.c M subversion/tests/libsvn_wc/conflict-data-test.c M subversion/tests/libsvn_wc/utils.c M subversion/tests/libsvn_wc/utils.h M STATUS (not shown in the diff) Merge the r1663338 group from trunk: * r1663338, r1663347 Properly record resolving of individual property conflicts. Justification: Fixes a few implementation bugs in the resolver code and exposes the api for more users than those that pass a callback function. Votes: +1: rhuijben ]]] Shall I open a subshell? [ydN?] ? # I typed '?' for help. y: Open a shell. d: View a diff. N: Move to the next entry. ?: Display this list. Shall I open a subshell? [ydN?] d # View a diff <the following was displayed in my pager> Index: subversion/libsvn_wc/conflicts.c =================================================================== --- subversion/libsvn_wc/conflicts.c (revision 1664176) +++ subversion/libsvn_wc/conflicts.c (working copy) @@ -2338,7 +2338,7 @@ static svn_error_t * resolve_prop_conflict_on_node(svn_boolean_t *did_resolve, ... <at this point, I quit the pager> Shall I open a subshell? [ydN?] n Reverted '.' Reverted 'subversion/tests/libsvn_wc/utils.c' Reverted 'subversion/tests/libsvn_wc/conflict-data-test.c' Reverted 'subversion/tests/libsvn_wc/utils.h' Reverted 'subversion/libsvn_wc/conflicts.c' >>> r1663791: r1663791 Trivial typo fix in error message. +1: brane, rhuijben Run a merge? [y,l,v,±1,±0,q,e,a, ,N,?] a # Move to 'Approved changes' >>> r1663791: r1663791 Trivial typo fix in error message. +1: brane, rhuijben Run a merge? [y,l,v,±1,±0,q,e,a, ,N,?] +1 # And enter a +1 vote >>> r1663991: r1663991 Fix calculating the repository path after commits of nodes that are shadowing a switched (not-present) node. +1: rhuijben Run a merge? [y,l,v,±1,±0,q,e,a, ,N,?] q # Quit. Index: STATUS =================================================================== --- STATUS (revision 1664172) +++ STATUS (working copy) @@ -22,7 +22,7 @@ Status of 1.9.0: Fixes a few implementation bugs in the resolver code and exposes the api for more users than those that pass a callback function. Votes: - +1: rhuijben + +1: rhuijben, danielsh * r1663450 Fix removing cache tokens in the ra_svn editor implementation @@ -77,13 +77,6 @@ Other candidate changes: Votes: +1: rhuijben - * r1663791 - Trivial typo fix in error message. - Justification: - Fixes a typo. - Votes: - +1: brane, rhuijben - * r1663991 Fix calculating the repository path after commits of nodes that are shadowing a switched (not-present) node. @@ -130,7 +123,6 @@ Other candidate changes: Veto-blocked changes: ===================== - Approved changes: ================= @@ -161,3 +153,11 @@ Approved changes: memory usage limited in a loop. Votes: +1: rhuijben, ivan, stefan2 + + * r1663791 + Trivial typo fix in error message. + Justification: + Fixes a typo. + Votes: + +1: brane, rhuijben, danielsh + [[[ * STATUS: Vote +1 on the r1663338 group. Vote +1 on r1663791, approving. ]]] Commit these votes? y Authentication realm: <https://svn.apache.org:443> ASF Committers Password for 'danielsh': ]]] The script can also show the log (by pressing 'l'), open just that entry in $EDITOR to allow editing the Notes field or the parentheticals (by pressing 'e'), and add entries to an ignore list so you are never prompted for them again (useful for ignoring swig-pl -related nominations). For a usage summary, run it with the --help option, or type '?' at the prompt. Cheers, Daniel