My workflow for reviewing backports is to run backport.pl with no
arguments.  It shows me each entry and allows me to merge it (real
merge, not a dry-run) and view the resulting diff.  When I'm done
I revert the last merge, edit STATUS to add my votes, and commit.

Are there features others would like to see in backport.pl that would
make it useful for their workflows?  For example, if I added a 'show log
messages of these revisions' feature, or a 'Add my +1 to this
nomination' feature, would someone use them?

I'm attaching a transcript of a representative session.
% ./b


=== Candidate changes:


>>> The r1491816 group:
r1491816, r1494089

Add two additional options to interactive file merge.

  +1: stsp, danielsh

Go ahead? n


>>> The 1.8.x-r1497310-partial branch:
r1497310
^/subversion/branches/1.8.x-r1497310-partial

Backport 'svn help cleanup' improvements made in r1497310.

  +1: stsp, danielsh

Go ahead? n


>>> The r1492264 group:
r1492264

Fix wrong character encoding handling of generic error messages
in JavaHL

  +1: brane

Go ahead? y
Would have committed:
[[[
 M      .
M       subversion/bindings/javahl/native/JNIUtil.cpp
M       STATUS (not shown in the diff)
Merge r1492264 from trunk:

 * r1492264
   Fix wrong character encoding handling of generic error messages
   in JavaHL
   Justification:
     Fixes a confusing bug where the generic error message generated by
     JavaHL is mangled due to wrong encoding, but the more specific messages
     generated by the native libraries are legible.
   Votes:
     +1: brane
]]]
Shall I open a subshell? [ydN] d
Index: subversion/bindings/javahl/native/JNIUtil.cpp
===================================================================
--- subversion/bindings/javahl/native/JNIUtil.cpp       (revision 1499419)
+++ subversion/bindings/javahl/native/JNIUtil.cpp       (working copy)
@@ -871,7 +871,21 @@ void JNIUtil::assembleErrorMessage(svn_error_t *er
         buffer.append(svn_strerror(err->apr_err, errbuf, sizeof(errbuf)));
       /* Otherwise, this must be an APR error code. */
       else
-        buffer.append(apr_strerror(err->apr_err, errbuf, sizeof(errbuf)));
+        {
+          /* Messages coming from apr_strerror are in the native
+             encoding, it's a good idea to convert them to UTF-8. */
+          const char* utf8_message;
+          apr_strerror(err->apr_err, errbuf, sizeof(errbuf));
+          svn_error_t* utf8_err = svn_utf_cstring_to_utf8(
+              &utf8_message, errbuf, err->pool);
+          if (utf8_err)
+            {
+              /* Use fuzzy transliteration instead. */
+              svn_error_clear(utf8_err);
+              utf8_message = svn_utf_cstring_from_utf8_fuzzy(errbuf, 
err->pool);
+            }
+          buffer.append(utf8_message);
+        }
       buffer.append("\n");
     }
   if (err->message)
Index: .
===================================================================
--- .   (revision 1499419)
+++ .   (working copy)

Property changes on: .
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /subversion/trunk:r1492264
Shall I open a subshell? [ydN] ^C
Revert?  y
Reverted '.'
Reverted 'subversion/bindings/javahl/native/JNIUtil.cpp'
% 

Reply via email to