You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/07/03 01:12:44 UTC

svn commit: r1499145 [4/4] - in /subversion/branches/fsfs-format7: ./ build/ac-macros/ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/...

Modified: subversion/branches/fsfs-format7/subversion/svn/cleanup-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/svn/cleanup-cmd.c?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/svn/cleanup-cmd.c (original)
+++ subversion/branches/fsfs-format7/subversion/svn/cleanup-cmd.c Tue Jul  2 23:12:42 2013
@@ -109,6 +109,14 @@ svn_cl__cleanup(apr_getopt_t *os,
                                                                  subpool));
             }
         }
+      else if (err && err->apr_err == SVN_ERR_WC_NOT_WORKING_COPY &&
+               (opt_state->remove_unversioned || opt_state->remove_ignored))
+        {
+          err = svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, err,
+                                 _("Cannot remove unversioned or ignored "
+                                   "items from something that is not a "
+                                   "working copy"));
+        }
       SVN_ERR(err);
     }
 

Modified: subversion/branches/fsfs-format7/subversion/svn/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/svn/status.c?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/svn/status.c (original)
+++ subversion/branches/fsfs-format7/subversion/svn/status.c Tue Jul  2 23:12:42 2013
@@ -269,14 +269,15 @@ print_status(const char *cwd_abspath, co
 
       if (tree_conflicted)
         {
-          const svn_wc_conflict_description2_t *tree_conflict;
+          const svn_wc_conflict_description3_t *tree_conflict;
           SVN_ERR(svn_wc__get_tree_conflict(&tree_conflict, ctx->wc_ctx,
                                             local_abspath, pool, pool));
           SVN_ERR_ASSERT(tree_conflict != NULL);
 
           tree_status_code = 'C';
           SVN_ERR(svn_cl__get_human_readable_tree_conflict_description(
-                            &desc, tree_conflict, pool));
+                            &desc, svn_wc__cd3_to_cd2(tree_conflict, pool),
+                            pool));
           tree_desc_line = apr_psprintf(pool, "\n      >   %s", desc);
           (*tree_conflicts)++;
         }

Modified: subversion/branches/fsfs-format7/subversion/svn/svn.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/svn/svn.c?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/svn/svn.c (original)
+++ subversion/branches/fsfs-format7/subversion/svn/svn.c Tue Jul  2 23:12:42 2013
@@ -512,7 +512,7 @@ const svn_opt_subcommand_desc2_t svn_cl_
      "  Note that the 'svn status' command shows unversioned items as '?',\n"
      "  and ignored items as 'I' if the --no-ignore option is given to it.\n"),
     {opt_merge_cmd, opt_remove_unversioned, opt_remove_ignored,
-     opt_include_externals} },
+     opt_include_externals, 'q'} },
 
   { "commit", svn_cl__commit, {"ci"},
     N_("Send changes from your working copy to the repository.\n"

Modified: subversion/branches/fsfs-format7/subversion/svnserve/serve.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/svnserve/serve.c?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/svnserve/serve.c (original)
+++ subversion/branches/fsfs-format7/subversion/svnserve/serve.c Tue Jul  2 23:12:42 2013
@@ -1392,13 +1392,13 @@ static svn_error_t *commit(svn_ra_svn_co
                            apr_array_header_t *params, void *baton)
 {
   server_baton_t *b = baton;
-  const char *log_msg = NULL,
+  const char *log_msg,
              *date = NULL,
              *author = NULL,
              *post_commit_err = NULL;
   apr_array_header_t *lock_tokens;
   svn_boolean_t keep_locks;
-  apr_array_header_t *revprop_list = NULL;
+  apr_array_header_t *revprop_list;
   apr_hash_t *revprop_table;
   const svn_delta_editor_t *editor;
   void *edit_baton;

Modified: subversion/branches/fsfs-format7/subversion/tests/cmdline/svnlook_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/tests/cmdline/svnlook_tests.py?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/tests/cmdline/svnlook_tests.py (original)
+++ subversion/branches/fsfs-format7/subversion/tests/cmdline/svnlook_tests.py Tue Jul  2 23:12:42 2013
@@ -709,10 +709,8 @@ fp.close()"""
                     '  bogus_rev_prop\n',
                     '  svn:date\n',
                     '  svn:txn-client-compat-version\n',
+                    '  svn:txn-user-agent\n',
                     ]
-  # ra_dav and ra_svn add the user-agent ephemeral property
-  if svntest.main.is_ra_type_dav() or svntest.main.is_ra_type_svn():
-    expected_data.append('  svn:txn-user-agent\n')
   verify_logfile(logfilepath, svntest.verify.UnorderedOutput(expected_data))
 
 def property_delete(sbox):

Propchange: subversion/branches/fsfs-format7/subversion/tests/libsvn_client/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Jul  2 23:12:42 2013
@@ -5,3 +5,5 @@ test-patch*
 test-wc*
 test-copy-crash
 test-youngest-common-ancestor
+foreign-copy1
+foreign-copy2

Modified: subversion/branches/fsfs-format7/subversion/tests/libsvn_fs/fs-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/tests/libsvn_fs/fs-test.c?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/tests/libsvn_fs/fs-test.c (original)
+++ subversion/branches/fsfs-format7/subversion/tests/libsvn_fs/fs-test.c Tue Jul  2 23:12:42 2013
@@ -27,6 +27,7 @@
 
 #include "../svn_test.h"
 
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_time.h"
 #include "svn_string.h"
@@ -4957,12 +4958,14 @@ filename_trailing_newline(const svn_test
   svn_fs_root_t *txn_root, *root;
   svn_revnum_t youngest_rev = 0;
   svn_error_t *err;
-  svn_boolean_t allow_newlines;
+  svn_boolean_t legacy_backend;
+  static const char contents[] = "foo\003bar";
 
-  /* Some filesystem implementations can handle newlines in filenames
-   * and can be white-listed here.
-   * Currently, only BDB supports \n in filenames. */
-  allow_newlines = (strcmp(opts->fs_type, "bdb") == 0);
+  /* The FS API wants \n to be permitted, but FSFS never implemented that,
+   * so for FSFS we expect errors rather than successes in some of the commits.
+   * Use a blacklist approach so that new FSes default to implementing the API
+   * as originally defined. */
+  legacy_backend = (!strcmp(opts->fs_type, SVN_FS_TYPE_FSFS));
 
   SVN_ERR(svn_test__create_fs(&fs, "test-repo-filename-trailing-newline",
                               opts, pool));
@@ -4980,17 +4983,59 @@ filename_trailing_newline(const svn_test
   SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool));
   SVN_ERR(svn_fs_revision_root(&root, fs, youngest_rev, subpool));
   err = svn_fs_copy(root, "/foo", txn_root, "/bar\n", subpool);
-  if (allow_newlines)
+  if (!legacy_backend)
     SVN_TEST_ASSERT(err == SVN_NO_ERROR);
   else
     SVN_TEST_ASSERT_ERROR(err, SVN_ERR_FS_PATH_SYNTAX);
 
   /* Attempt to create a file /foo/baz\n. This should fail on FSFS. */
   err = svn_fs_make_file(txn_root, "/foo/baz\n", subpool);
-  if (allow_newlines)
+  if (!legacy_backend)
     SVN_TEST_ASSERT(err == SVN_NO_ERROR);
   else
     SVN_TEST_ASSERT_ERROR(err, SVN_ERR_FS_PATH_SYNTAX);
+  
+
+  /* Create another file, with contents. */
+  if (!legacy_backend)
+    {
+      SVN_ERR(svn_fs_make_file(txn_root, "/bar\n/baz\n", subpool));
+      SVN_ERR(svn_test__set_file_contents(txn_root, "bar\n/baz\n",
+                                          contents, pool));
+    }
+
+  if (!legacy_backend)
+    {
+      svn_revnum_t after_rev;
+      static svn_test__tree_entry_t expected_entries[] = {
+        { "foo", NULL },
+        { "bar\n", NULL },
+        { "foo/baz\n", "" },
+        { "bar\n/baz\n", contents },
+        { NULL, NULL }
+      };
+      const char *expected_changed_paths[] = {
+        "/bar\n",
+        "/foo/baz\n",
+        "/bar\n/baz\n",
+        NULL
+      };
+      apr_hash_t *expected_changes = apr_hash_make(pool);
+      int i;
+
+      SVN_ERR(svn_fs_commit_txn(NULL, &after_rev, txn, subpool));
+      SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(after_rev));
+
+      /* Validate the DAG. */
+      SVN_ERR(svn_fs_revision_root(&root, fs, after_rev, pool));
+      SVN_ERR(svn_test__validate_tree(root, expected_entries, 4, pool));
+
+      /* Validate changed-paths, where the problem originally occurred. */
+      for (i = 0; expected_changed_paths[i]; i++)
+        svn_hash_sets(expected_changes, expected_changed_paths[i],
+                      "undefined value");
+      SVN_ERR(svn_test__validate_changes(root, expected_changes, pool));
+    }
 
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/fsfs-format7/subversion/tests/libsvn_subr/config-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/tests/libsvn_subr/config-test.c?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/tests/libsvn_subr/config-test.c (original)
+++ subversion/branches/fsfs-format7/subversion/tests/libsvn_subr/config-test.c Tue Jul  2 23:12:42 2013
@@ -336,6 +336,22 @@ test_stream_interface(apr_pool_t *pool)
   return SVN_NO_ERROR;
 }
 
+static svn_error_t *
+test_ignore_bom(apr_pool_t *pool)
+{
+  svn_config_t *cfg;
+  svn_string_t *cfg_string = svn_string_create("\xEE\xBB\xBF[s1]\nfoo=bar\n",
+                                               pool);
+  svn_stream_t *stream = svn_stream_from_string(cfg_string, pool);
+
+  SVN_ERR(svn_config_parse(&cfg, stream, TRUE, TRUE, pool));
+
+  if (! svn_config_has_section(cfg, "s1"))
+    return fail(pool, "failed to find section s1");
+
+  return SVN_NO_ERROR;
+}
+
 /*
    ====================================================================
    If you add a new test to this file, update this array.
@@ -359,5 +375,6 @@ struct svn_test_descriptor_t test_funcs[
                    "test case-sensitive option name lookup"),
     SVN_TEST_PASS2(test_stream_interface,
                    "test svn_config_parse"),
+    SVN_TEST_XFAIL2(test_ignore_bom, "test parsing config file with BOM"),
     SVN_TEST_NULL
   };

Modified: subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/conflict-data-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/conflict-data-test.c?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/conflict-data-test.c (original)
+++ subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/conflict-data-test.c Tue Jul  2 23:12:42 2013
@@ -88,8 +88,8 @@ compare_version(const svn_wc_conflict_ve
  * (including names of temporary files), or are both NULL.  Return an
  * error if not. */
 static svn_error_t *
-compare_conflict(const svn_wc_conflict_description2_t *actual,
-                 const svn_wc_conflict_description2_t *expected)
+compare_conflict(const svn_wc_conflict_description3_t *actual,
+                 const svn_wc_conflict_description3_t *expected)
 {
   if (actual == NULL && expected == NULL)
     return SVN_NO_ERROR;
@@ -181,7 +181,7 @@ compare_prop_conflict(const svn_wc_confl
 }
 
 /* Create and return a tree conflict description */
-static svn_wc_conflict_description2_t *
+static svn_wc_conflict_description3_t *
 tree_conflict_create(const char *local_abspath,
                      svn_node_kind_t node_kind,
                      svn_wc_operation_t operation,
@@ -198,14 +198,14 @@ tree_conflict_create(const char *local_a
                      apr_pool_t *result_pool)
 {
   svn_wc_conflict_version_t *left, *right;
-  svn_wc_conflict_description2_t *conflict;
+  svn_wc_conflict_description3_t *conflict;
 
   left = svn_wc_conflict_version_create2(left_repo, NULL, left_path,
                                          left_revnum, left_kind, result_pool);
   right = svn_wc_conflict_version_create2(right_repo, NULL, right_path,
                                           right_revnum, right_kind,
                                           result_pool);
-  conflict = svn_wc_conflict_description_create_tree2(
+  conflict = svn_wc_conflict_description_create_tree3(
                     local_abspath, node_kind, operation,
                     left, right, result_pool);
   conflict->action = action;
@@ -216,8 +216,8 @@ tree_conflict_create(const char *local_a
 static svn_error_t *
 test_deserialize_tree_conflict(apr_pool_t *pool)
 {
-  const svn_wc_conflict_description2_t *conflict;
-  svn_wc_conflict_description2_t *exp_conflict;
+  const svn_wc_conflict_description3_t *conflict;
+  svn_wc_conflict_description3_t *exp_conflict;
   const char *tree_conflict_data;
   const char *local_abspath;
   const svn_skel_t *skel;
@@ -226,7 +226,7 @@ test_deserialize_tree_conflict(apr_pool_
                         "(version 0  2 -1 0  0 ) (version 0  2 -1 0  0 ))";
 
   SVN_ERR(svn_dirent_get_absolute(&local_abspath, "Foo.c", pool));
-  exp_conflict = svn_wc_conflict_description_create_tree2(
+  exp_conflict = svn_wc_conflict_description_create_tree3(
                         local_abspath, svn_node_file, svn_wc_operation_update,
                         NULL, NULL, pool);
   exp_conflict->action = svn_wc_conflict_action_delete;
@@ -248,7 +248,7 @@ test_deserialize_tree_conflict(apr_pool_
 static svn_error_t *
 test_serialize_tree_conflict_data(apr_pool_t *pool)
 {
-  svn_wc_conflict_description2_t *conflict;
+  svn_wc_conflict_description3_t *conflict;
   const char *tree_conflict_data;
   const char *expected;
   const char *local_abspath;
@@ -256,7 +256,7 @@ test_serialize_tree_conflict_data(apr_po
 
   SVN_ERR(svn_dirent_get_absolute(&local_abspath, "Foo.c", pool));
 
-  conflict = svn_wc_conflict_description_create_tree2(
+  conflict = svn_wc_conflict_description_create_tree3(
                     local_abspath, svn_node_file, svn_wc_operation_update,
                     NULL, NULL, pool);
   conflict->action = svn_wc_conflict_action_delete;
@@ -285,7 +285,7 @@ test_read_write_tree_conflicts(const svn
 
   const char *parent_abspath;
   const char *child1_abspath, *child2_abspath;
-  svn_wc_conflict_description2_t *conflict1, *conflict2;
+  svn_wc_conflict_description3_t *conflict1, *conflict2;
 
   SVN_ERR(svn_test__sandbox_create(&sbox, "read_write_tree_conflicts", opts, pool));
   parent_abspath = svn_dirent_join(sbox.wc_abspath, "A", pool);
@@ -337,7 +337,7 @@ test_read_write_tree_conflicts(const svn
 
   /* Read conflicts back */
   {
-    const svn_wc_conflict_description2_t *read_conflict;
+    const svn_wc_conflict_description3_t *read_conflict;
 
     SVN_ERR(svn_wc__get_tree_conflict(&read_conflict, sbox.wc_ctx,
                                       child1_abspath, pool, pool));

Modified: subversion/branches/fsfs-format7/subversion/tests/svn_test_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/tests/svn_test_fs.c?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/tests/svn_test_fs.c (original)
+++ subversion/branches/fsfs-format7/subversion/tests/svn_test_fs.c Tue Jul  2 23:12:42 2013
@@ -370,6 +370,8 @@ get_dir_entries(apr_hash_t *tree_entries
 }
 
 
+/* Verify that PATH under ROOT is: a directory if contents is NULL;
+   a file with contents CONTENTS otherwise. */
 static svn_error_t *
 validate_tree_entry(svn_fs_root_t *root,
                     const char *path,
@@ -531,6 +533,42 @@ svn_test__validate_tree(svn_fs_root_t *r
 
 
 svn_error_t *
+svn_test__validate_changes(svn_fs_root_t *root,
+                           apr_hash_t *expected,
+                           apr_pool_t *pool)
+{
+  apr_hash_t *actual;
+  apr_hash_index_t *hi;
+
+  SVN_ERR(svn_fs_paths_changed2(&actual, root, pool));
+
+#if 0
+  /* Print ACTUAL and EXPECTED. */
+  {
+    int i;
+    for (i=0, hi = apr_hash_first(pool, expected); hi; hi = apr_hash_next(hi))
+      SVN_DBG(("expected[%d] = '%s'\n", i++, svn__apr_hash_index_key(hi)));
+    for (i=0, hi = apr_hash_first(pool, actual); hi; hi = apr_hash_next(hi))
+      SVN_DBG(("actual[%d] = '%s'\n", i++, svn__apr_hash_index_key(hi)));
+  }
+#endif
+
+  for (hi = apr_hash_first(pool, expected); hi; hi = apr_hash_next(hi))
+    if (NULL == svn_hash_gets(actual, svn__apr_hash_index_key(hi)))
+      return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
+                               "Path '%s' missing from actual changed-paths",
+                               svn__apr_hash_index_key(hi));
+
+  for (hi = apr_hash_first(pool, actual); hi; hi = apr_hash_next(hi))
+    if (NULL == svn_hash_gets(expected, svn__apr_hash_index_key(hi)))
+      return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
+                               "Path '%s' missing from expected changed-paths",
+                               svn__apr_hash_index_key(hi));
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_test__txn_script_exec(svn_fs_root_t *txn_root,
                           svn_test__txn_script_command_t *script,
                           int num_edits,

Modified: subversion/branches/fsfs-format7/subversion/tests/svn_test_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/tests/svn_test_fs.h?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/tests/svn_test_fs.h (original)
+++ subversion/branches/fsfs-format7/subversion/tests/svn_test_fs.h Tue Jul  2 23:12:42 2013
@@ -112,6 +112,14 @@ svn_test__validate_tree(svn_fs_root_t *r
                         int num_entries,
                         apr_pool_t *pool);
 
+/* Verify that svn_fs_paths_changed2(ROOT) returns a hash with exactly
+   the same keys as EXPECTED_KEYS.  Values are not currently verified.
+ */
+svn_error_t *
+svn_test__validate_changes(svn_fs_root_t *root,
+                           apr_hash_t *expected_keys,
+                           apr_pool_t *pool);
+
 /* Structure for describing script-ish commands to perform on a
    transaction using svn_test__txn_script_exec().  */
 typedef struct svn_test__txn_script_command_t

Modified: subversion/branches/fsfs-format7/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd (original)
+++ subversion/branches/fsfs-format7/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd Tue Jul  2 23:12:42 2013
@@ -59,6 +59,7 @@ taskkill /im svnsync.exe /f 2> nul:
 taskkill /im httpd.exe /f 2> nul:
 taskkill /im fs-test.exe /f 2> nul:
 taskkill /im op-depth-test.exe /f 2> nul:
+taskkill /im atomic-ra-revprop-change.exe /f 2> nul:
 taskkill /im java.exe /f 2> nul:
 taskkill /im perl.exe /f 2> nul:
 taskkill /im mspdbsrv.exe /f 2> nul:

Modified: subversion/branches/fsfs-format7/tools/dev/po-merge.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/tools/dev/po-merge.py?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/tools/dev/po-merge.py (original)
+++ subversion/branches/fsfs-format7/tools/dev/po-merge.py Tue Jul  2 23:12:42 2013
@@ -178,9 +178,10 @@ def main(argv):
                 for i in msgstr:
                     outfile.write('msgstr[%s] %s\n' % (n, msgstr[n]))
                     n += 1
-        for m in msgstr:
-            if m == '""':
-                untranslated += 1
+        if msgstr is not None:
+            for m in msgstr:
+                if m == '""':
+                    untranslated += 1
         for c in comments:
             if c.startswith('#,') and 'fuzzy' in c.split(', '):
                 fuzzy += 1

Modified: subversion/branches/fsfs-format7/tools/dev/unix-build/Makefile.svn
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/tools/dev/unix-build/Makefile.svn?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/tools/dev/unix-build/Makefile.svn (original)
+++ subversion/branches/fsfs-format7/tools/dev/unix-build/Makefile.svn Tue Jul  2 23:12:42 2013
@@ -1193,8 +1193,9 @@ else
 endif
 
 ifdef PROFILE
-SVN_ALL_STATIC=--enable-all-static
+SVN_STATIC_FLAG=--enable-all-static
 else
+SVN_STATIC_FLAG=--disable-static
 SVN_WITH_HTTPD=--with-apxs="$(PREFIX)/httpd/bin/apxs" \
 	--with-apache-libexecdir="$(PREFIX)/httpd/modules/svn-$(WC)"
 SVN_WITH_SASL=--with-sasl="$(PREFIX)/cyrus-sasl"
@@ -1224,7 +1225,7 @@ $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)
 			--disable-mod-activation \
 			$(JAVAHL_FLAG) \
 			$(LIBMAGIC_FLAG) \
-			$(SVN_ALL_STATIC) \
+			$(SVN_STATIC_FLAG) \
 			$(DISABLE_NEON_VERSION_CHECK)
 	touch $@
 

Modified: subversion/branches/fsfs-format7/tools/dist/backport.pl
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/tools/dist/backport.pl?rev=1499145&r1=1499144&r2=1499145&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/tools/dist/backport.pl (original)
+++ subversion/branches/fsfs-format7/tools/dist/backport.pl Tue Jul  2 23:12:42 2013
@@ -192,14 +192,18 @@ sub parse_entry {
   $branch = sanitize_branch $1
     if $_[0] =~ /^(\S*) branch$/ or $_[0] =~ m#branches/(\S+)#;
   while ($_[0] =~ /^r/) {
+    my $sawrevnum = 0;
     while ($_[0] =~ s/^r(\d+)(?:$|[,; ]+)//) {
       push @revisions, $1;
+      $sawrevnum++;
     }
-    shift;
+    $sawrevnum ? shift : last;
   }
 
   # summary
-  push @logsummary, shift until $_[0] =~ /^\s*\w+:/ or not defined $_[0];
+  do {
+    push @logsummary, shift
+  } until $_[0] =~ /^\s*\w+:/ or not defined $_[0];
 
   # votes
   unshift @votes, pop until $_[-1] =~ /^\s*Votes:/ or not defined $_[-1];
@@ -273,6 +277,12 @@ sub handle_entry {
   1;
 }
 
+sub maybe_revert {
+  # This is both a SIGINT handler, and the tail end of main() in normal runs.
+  system $SVN, qw/revert -R ./ if !$YES and prompt 'Revert? ';
+  exit if @_;
+}
+
 sub main {
   usage, exit 0 if @ARGV;
 
@@ -294,6 +304,8 @@ sub main {
   }
   $/ = ""; # paragraph mode
 
+  $SIG{INT} = \&maybe_revert;
+
   my $in_approved = 0;
   while (<STATUS>) {
     my @lines = split /\n/;
@@ -324,7 +336,7 @@ sub main {
     }
   }
 
-  system $SVN, qw/revert -R ./ if !$YES and prompt 'Revert? ';
+  maybe_revert;
 }
 
 &main