subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cmpil...@apache.org
Subject svn commit: r1354571 [36/37] - in /subversion/branches/master-passphrase: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ build/win32/ contrib/client-side/emacs/ contrib/server-side/ notes/ notes/api-errata/1.8/ notes/directory-i...
Date Wed, 27 Jun 2012 15:13:42 GMT
Modified: subversion/branches/master-passphrase/subversion/tests/libsvn_wc/op-depth-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/tests/libsvn_wc/op-depth-test.c?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/tests/libsvn_wc/op-depth-test.c (original)
+++ subversion/branches/master-passphrase/subversion/tests/libsvn_wc/op-depth-test.c Wed Jun 27 15:12:37 2012
@@ -238,7 +238,10 @@ wc_update(svn_test__sandbox_t *b, const 
   apr_array_header_t *result_revs;
   apr_array_header_t *paths = apr_array_make(b->pool, 1,
                                              sizeof(const char *));
-  svn_opt_revision_t revision = { svn_opt_revision_number, { revnum } };
+  svn_opt_revision_t revision;
+
+  revision.kind = svn_opt_revision_number;
+  revision.value.number = revnum;
 
   APR_ARRAY_PUSH(paths, const char *) = wc_path(b, path);
   SVN_ERR(svn_client_create_context(&ctx, b->pool));
@@ -455,8 +458,12 @@ check_db_rows(svn_test__sandbox_t *b,
   svn_boolean_t have_row;
   apr_hash_t *found_hash = apr_hash_make(b->pool);
   apr_hash_t *expected_hash = apr_hash_make(b->pool);
-  comparison_baton_t comparison_baton
-    = { expected_hash, found_hash, b->pool, NULL };
+  comparison_baton_t comparison_baton;
+
+  comparison_baton.expected_hash = expected_hash;
+  comparison_baton.found_hash = found_hash;
+  comparison_baton.scratch_pool = b->pool;
+  comparison_baton.errors = NULL;
 
   /* Fill ACTUAL_HASH with data from the WC DB. */
   SVN_ERR(open_wc_db(&sdb, b->wc_abspath, statements, b->pool, b->pool));
@@ -523,23 +530,23 @@ struct copy_subtest_t
   nodes_row_t expected[20];
 };
 
+#define source_everything   "A/B"
+
+#define source_base_file    "A/B/lambda"
+#define source_base_dir     "A/B/E"
+
+#define source_added_file   "A/B/file-added"
+#define source_added_dir    "A/B/D-added"
+#define source_added_dir2   "A/B/D-added/D2"
+
+#define source_copied_file  "A/B/lambda-copied"
+#define source_copied_dir   "A/B/E-copied"
+
 /* Check that all kinds of WC-to-WC copies give correct op_depth results:
  * create a Greek tree, make copies in it, and check the resulting DB rows. */
 static svn_error_t *
 wc_wc_copies(svn_test__sandbox_t *b)
 {
-  const char source_everything[]  = "A/B";
-
-  const char source_base_file[]   = "A/B/lambda";
-  const char source_base_dir[]    = "A/B/E";
-
-  const char source_added_file[]  = "A/B/file-added";
-  const char source_added_dir[]   = "A/B/D-added";
-  const char source_added_dir2[]  = "A/B/D-added/D2";
-
-  const char source_copied_file[] = "A/B/lambda-copied";
-  const char source_copied_dir[]  = "A/B/E-copied";
-
   SVN_ERR(add_and_commit_greek_tree(b));
 
   /* Create the various kinds of source node which will be copied */
@@ -756,13 +763,15 @@ repo_wc_copies(svn_test__sandbox_t *b)
     for (subtest = subtests; subtest->from_path; subtest++)
       {
         svn_opt_revision_t rev = { svn_opt_revision_number, { 1 } };
-        svn_client_copy_source_t source = { NULL, &rev, &rev };
+        svn_client_copy_source_t source;
         apr_array_header_t *sources
           = apr_array_make(b->pool, 0, sizeof(svn_client_copy_source_t *));
 
         source.path = svn_path_url_add_component2(b->repos_url,
                                                   subtest->from_path,
                                                   b->pool);
+        source.revision = &rev;
+        source.peg_revision = &rev;
         APR_ARRAY_PUSH(sources, svn_client_copy_source_t *) = &source;
         SVN_ERR(svn_client_copy6(sources,
                                  wc_path(b, subtest->to_path),
@@ -1217,9 +1226,9 @@ insert_dirs(svn_test__sandbox_t *b,
       if (nodes->local_relpath[0])
         {
           SVN_ERR(svn_sqlite__get_statement(&stmt, sdb, 2));
-          SVN_ERR(svn_sqlite__bindf(stmt, "sissrs",
+          SVN_ERR(svn_sqlite__bindf(stmt, "sdssrs",
                                     nodes->local_relpath,
-                                    (apr_int64_t)nodes->op_depth,
+                                    nodes->op_depth,
                                     nodes->presence,
                                     nodes->repo_relpath,
                                     nodes->repo_revnum,
@@ -1229,9 +1238,9 @@ insert_dirs(svn_test__sandbox_t *b,
       else
         {
           SVN_ERR(svn_sqlite__get_statement(&stmt, sdb, 1));
-          SVN_ERR(svn_sqlite__bindf(stmt, "sissr",
+          SVN_ERR(svn_sqlite__bindf(stmt, "sdssr",
                                     nodes->local_relpath,
-                                    (apr_int64_t)nodes->op_depth,
+                                    nodes->op_depth,
                                     nodes->presence,
                                     nodes->repo_relpath,
                                     nodes->repo_revnum));
@@ -1277,7 +1286,7 @@ base_dir_insert_remove(svn_test__sandbox
                                         NULL, NULL, FALSE, NULL, NULL,
                                         b->pool));
 
-  after = apr_palloc(b->pool, sizeof(*after) * (num_before + num_added + 1));
+  after = apr_palloc(b->pool, sizeof(*after) * (apr_size_t)(num_before + num_added + 1));
   for (i = 0; i < num_before; ++i)
     after[i] = before[i];
   for (i = 0; i < num_added; ++i)
@@ -4576,6 +4585,396 @@ move_update(const svn_test_opts_t *opts,
   return SVN_NO_ERROR;
 }
 
+static svn_error_t *
+check_moved_to(apr_array_header_t *moved_tos,
+               int i,
+               int op_depth,
+               const char *local_relpath)
+{
+  struct svn_wc__db_moved_to_t *moved_to;
+
+  if (i >= moved_tos->nelts)
+    return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
+                             "moved-to %d not found", i);
+
+  moved_to = APR_ARRAY_IDX(moved_tos, i, struct svn_wc__db_moved_to_t *);
+
+  if (moved_to->op_depth != op_depth
+      || strcmp(moved_to->local_relpath, local_relpath))
+    return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
+                             "expected: {%d '%s'} found[%d]: {%d '%s'}",
+                             op_depth, local_relpath, i,
+                             moved_to->op_depth, moved_to->local_relpath);
+
+  return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_scan_delete(const svn_test_opts_t *opts, apr_pool_t *pool)
+{
+  svn_test__sandbox_t b;
+  const char *moved_to_abspath, *moved_to_op_root_abspath;
+  apr_array_header_t *moved_tos;
+
+  SVN_ERR(svn_test__sandbox_create(&b, "scan_delete", opts, pool));
+
+  SVN_ERR(wc_mkdir(&b, "A"));
+  SVN_ERR(wc_mkdir(&b, "A/B"));
+  SVN_ERR(wc_mkdir(&b, "A/B/C"));
+  SVN_ERR(wc_mkdir(&b, "A2"));
+  SVN_ERR(wc_mkdir(&b, "A2/B"));
+  SVN_ERR(wc_mkdir(&b, "C2"));
+  SVN_ERR(wc_commit(&b, ""));
+  SVN_ERR(wc_update(&b, "", 1));
+
+  SVN_ERR(wc_move(&b, "A2", "X"));
+  SVN_ERR(wc_move(&b, "X/B", "Z"));
+  SVN_ERR(wc_move(&b, "A/B", "X/B"));
+  SVN_ERR(wc_move(&b, "X/B/C", "Y"));
+  SVN_ERR(wc_move(&b, "C2", "X/B/C"));
+
+  {
+    nodes_row_t nodes[] = {
+      {0, "",         "normal",       1, ""},
+      {0, "A",        "normal",       1, "A"},
+      {0, "A/B",      "normal",       1, "A/B"},
+      {0, "A/B/C",    "normal",       1, "A/B/C"},
+      {0, "A2",       "normal",       1, "A2"},
+      {0, "A2/B",     "normal",       1, "A2/B"},
+      {0, "C2",       "normal",       1, "C2"},
+      {1, "A2",       "base-deleted", NO_COPY_FROM, "X"},
+      {1, "A2/B",     "base-deleted", NO_COPY_FROM},
+      {1, "Z",        "normal",       1, "A2/B", MOVED_HERE},
+      {1, "X",        "normal",       1, "A2", MOVED_HERE},
+      {1, "X/B",      "normal",       1, "A2/B", MOVED_HERE},
+      {2, "A/B",      "base-deleted", NO_COPY_FROM, "X/B"},
+      {2, "A/B/C",    "base-deleted", NO_COPY_FROM},
+      {2, "X/B",      "normal",       1, "A/B", FALSE, "Z", TRUE},
+      {2, "X/B/C",    "normal",       1, "A/B/C", MOVED_HERE},
+      {1, "Y",        "normal",       1, "A/B/C", MOVED_HERE},
+      {1, "C2",       "base-deleted", NO_COPY_FROM, "X/B/C"},
+      {3, "X/B/C",    "normal",       1, "C2", FALSE, "Y", TRUE},
+      {0}
+    };
+    SVN_ERR(check_db_rows(&b, "", nodes));
+  }
+
+  SVN_ERR(svn_wc__db_scan_deletion(NULL, &moved_to_abspath,
+                                   NULL, &moved_to_op_root_abspath,
+                                   b.wc_ctx->db, wc_path(&b, "C2"),
+                                   pool, pool));
+  SVN_TEST_STRING_ASSERT(moved_to_abspath, wc_path(&b, "X/B/C"));
+  SVN_TEST_STRING_ASSERT(moved_to_op_root_abspath, wc_path(&b, "X/B/C"));
+
+  SVN_ERR(svn_wc__db_scan_deletion(NULL, &moved_to_abspath,
+                                   NULL, &moved_to_op_root_abspath,
+                                   b.wc_ctx->db, wc_path(&b, "A/B"),
+                                   pool, pool));
+  SVN_TEST_STRING_ASSERT(moved_to_abspath, wc_path(&b, "X/B"));
+  SVN_TEST_STRING_ASSERT(moved_to_op_root_abspath, wc_path(&b, "X/B"));
+
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A/B/C"), pool, pool));
+  SVN_ERR(check_moved_to(moved_tos, 0, 2, "X/B/C"));
+  SVN_ERR(check_moved_to(moved_tos, 1, 3, "Y"));
+  SVN_TEST_ASSERT(moved_tos->nelts == 2);
+
+  SVN_ERR(svn_wc__db_scan_deletion(NULL, &moved_to_abspath,
+                                   NULL, &moved_to_op_root_abspath,
+                                   b.wc_ctx->db, wc_path(&b, "A/B/C"),
+                                   pool, pool));
+  SVN_TEST_STRING_ASSERT(moved_to_abspath, wc_path(&b, "X/B/C"));
+  SVN_TEST_STRING_ASSERT(moved_to_op_root_abspath, wc_path(&b, "X/B"));
+
+  SVN_ERR(svn_wc__db_scan_deletion(NULL, &moved_to_abspath,
+                                   NULL, &moved_to_op_root_abspath,
+                                   b.wc_ctx->db, wc_path(&b, "A2"),
+                                   pool, pool));
+  SVN_TEST_STRING_ASSERT(moved_to_abspath, wc_path(&b, "X"));
+  SVN_TEST_STRING_ASSERT(moved_to_op_root_abspath, wc_path(&b, "X"));
+
+  SVN_ERR(svn_wc__db_scan_deletion(NULL, &moved_to_abspath,
+                                   NULL, &moved_to_op_root_abspath,
+                                   b.wc_ctx->db, wc_path(&b, "A2/B"),
+                                   pool, pool));
+  SVN_TEST_STRING_ASSERT(moved_to_abspath, wc_path(&b, "X/B"));
+  SVN_TEST_STRING_ASSERT(moved_to_op_root_abspath, wc_path(&b, "X"));
+
+  return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_follow_moved_to(const svn_test_opts_t *opts, apr_pool_t *pool)
+{
+  svn_test__sandbox_t b;
+  apr_array_header_t *moved_tos;
+
+  SVN_ERR(svn_test__sandbox_create(&b, "follow_moved_to", opts, pool));
+
+  SVN_ERR(wc_mkdir(&b, "A1"));
+  SVN_ERR(wc_mkdir(&b, "A1/B"));
+  SVN_ERR(wc_mkdir(&b, "A1/B/C"));
+  SVN_ERR(wc_mkdir(&b, "A1/B/C/D"));
+  SVN_ERR(wc_mkdir(&b, "A1/B/C/D/E"));
+  SVN_ERR(wc_mkdir(&b, "A2"));
+  SVN_ERR(wc_mkdir(&b, "A2/B"));
+  SVN_ERR(wc_mkdir(&b, "A2/B/C"));
+  SVN_ERR(wc_mkdir(&b, "A2/B/C/D"));
+  SVN_ERR(wc_mkdir(&b, "A2/B/C/D/E"));
+  SVN_ERR(wc_mkdir(&b, "A3"));
+  SVN_ERR(wc_mkdir(&b, "A3/B"));
+  SVN_ERR(wc_mkdir(&b, "A3/B/C"));
+  SVN_ERR(wc_mkdir(&b, "A3/B/C/D"));
+  SVN_ERR(wc_mkdir(&b, "A3/B/C/D/E"));
+  SVN_ERR(wc_commit(&b, ""));
+  SVN_ERR(wc_update(&b, "", 1));
+
+  {
+    nodes_row_t nodes[] = {
+      {0, "",         "normal", 1, ""},
+      {0, "A1",       "normal", 1, "A1"},
+      {0, "A1/B",     "normal", 1, "A1/B"},
+      {0, "A1/B/C",   "normal", 1, "A1/B/C"},
+      {0, "A1/B/C/D", "normal", 1, "A1/B/C/D"},
+      {0, "A1/B/C/D/E", "normal", 1, "A1/B/C/D/E"},
+      {0, "A2",       "normal", 1, "A2"},
+      {0, "A2/B",     "normal", 1, "A2/B"},
+      {0, "A2/B/C",   "normal", 1, "A2/B/C"},
+      {0, "A2/B/C/D", "normal", 1, "A2/B/C/D"},
+      {0, "A2/B/C/D/E", "normal", 1, "A2/B/C/D/E"},
+      {0, "A3",       "normal", 1, "A3"},
+      {0, "A3/B",     "normal", 1, "A3/B"},
+      {0, "A3/B/C",   "normal", 1, "A3/B/C"},
+      {0, "A3/B/C/D", "normal", 1, "A3/B/C/D"},
+      {0, "A3/B/C/D/E", "normal", 1, "A3/B/C/D/E"},
+      {0}
+    };
+    SVN_ERR(check_db_rows(&b, "", nodes));
+  }
+
+  SVN_ERR(wc_move(&b, "A1", "X"));
+  SVN_ERR(wc_move(&b, "A2", "A1"));
+  SVN_ERR(wc_move(&b, "A3", "A2"));
+  SVN_ERR(wc_move(&b, "X", "A3"));
+  SVN_ERR(wc_move(&b, "A1/B", "X"));
+  SVN_ERR(wc_move(&b, "A2/B", "A1/B"));
+  SVN_ERR(wc_move(&b, "A3/B", "A2/B"));
+  SVN_ERR(wc_move(&b, "X", "A3/B"));
+  SVN_ERR(wc_move(&b, "A1/B/C/D", "X"));
+  SVN_ERR(wc_move(&b, "A2/B/C/D", "A1/B/C/D"));
+  SVN_ERR(wc_move(&b, "A3/B/C/D", "A2/B/C/D"));
+  SVN_ERR(wc_move(&b, "X", "A3/B/C/D"));
+  SVN_ERR(wc_move(&b, "A1/B/C/D/E", "X"));
+  SVN_ERR(wc_move(&b, "A2/B/C/D/E", "A1/B/C/D/E"));
+  SVN_ERR(wc_move(&b, "A3/B/C/D/E", "A2/B/C/D/E"));
+  SVN_ERR(wc_move(&b, "X", "A3/B/C/D/E"));
+
+  {
+    nodes_row_t nodes[] = {
+      {0, "",         "normal", 1, ""},
+      {0, "A1",       "normal", 1, "A1"},
+      {0, "A1/B",     "normal", 1, "A1/B"},
+      {0, "A1/B/C",   "normal", 1, "A1/B/C"},
+      {0, "A1/B/C/D", "normal", 1, "A1/B/C/D"},
+      {0, "A1/B/C/D/E", "normal", 1, "A1/B/C/D/E"},
+      {0, "A2",       "normal", 1, "A2"},
+      {0, "A2/B",     "normal", 1, "A2/B"},
+      {0, "A2/B/C",   "normal", 1, "A2/B/C"},
+      {0, "A2/B/C/D", "normal", 1, "A2/B/C/D"},
+      {0, "A2/B/C/D/E", "normal", 1, "A2/B/C/D/E"},
+      {0, "A3",       "normal", 1, "A3"},
+      {0, "A3/B",     "normal", 1, "A3/B"},
+      {0, "A3/B/C",   "normal", 1, "A3/B/C"},
+      {0, "A3/B/C/D", "normal", 1, "A3/B/C/D"},
+      {0, "A3/B/C/D/E", "normal", 1, "A3/B/C/D/E"},
+
+      {1, "A1",       "normal", 1, "A2", FALSE, "A3", TRUE},
+      {1, "A1/B",     "normal", 1, "A2/B", MOVED_HERE},
+      {1, "A1/B/C",   "normal", 1, "A2/B/C", MOVED_HERE},
+      {1, "A1/B/C/D", "normal", 1, "A2/B/C/D", MOVED_HERE},
+      {1, "A1/B/C/D/E", "normal", 1, "A2/B/C/D/E", MOVED_HERE},
+
+      {1, "A2",       "normal", 1, "A3", FALSE, "A1", TRUE},
+      {1, "A2/B",     "normal", 1, "A3/B", MOVED_HERE},
+      {1, "A2/B/C",   "normal", 1, "A3/B/C", MOVED_HERE},
+      {1, "A2/B/C/D", "normal", 1, "A3/B/C/D", MOVED_HERE},
+      {1, "A2/B/C/D/E", "normal", 1, "A3/B/C/D/E", MOVED_HERE},
+
+      {1, "A3",       "normal", 1, "A1", FALSE, "A2", TRUE},
+      {1, "A3/B",     "normal", 1, "A1/B", MOVED_HERE},
+      {1, "A3/B/C",   "normal", 1, "A1/B/C", MOVED_HERE},
+      {1, "A3/B/C/D", "normal", 1, "A1/B/C/D", MOVED_HERE},
+      {1, "A3/B/C/D/E", "normal", 1, "A1/B/C/D/E", MOVED_HERE},
+
+      {2, "A1/B",     "normal", 1, "A3/B", FALSE, "A3/B", TRUE},
+      {2, "A1/B/C",   "normal", 1, "A3/B/C", MOVED_HERE},
+      {2, "A1/B/C/D", "normal", 1, "A3/B/C/D", MOVED_HERE},
+      {2, "A1/B/C/D/E", "normal", 1, "A3/B/C/D/E", MOVED_HERE},
+
+      {2, "A2/B",     "normal", 1, "A1/B", FALSE, "A1/B", TRUE},
+      {2, "A2/B/C",   "normal", 1, "A1/B/C", MOVED_HERE},
+      {2, "A2/B/C/D", "normal", 1, "A1/B/C/D", MOVED_HERE},
+      {2, "A2/B/C/D/E", "normal", 1, "A1/B/C/D/E", MOVED_HERE},
+
+      {2, "A3/B",     "normal", 1, "A2/B", FALSE, "A2/B", TRUE},
+      {2, "A3/B/C",   "normal", 1, "A2/B/C", MOVED_HERE},
+      {2, "A3/B/C/D", "normal", 1, "A2/B/C/D", MOVED_HERE},
+      {2, "A3/B/C/D/E", "normal", 1, "A2/B/C/D/E", MOVED_HERE},
+
+      {4, "A1/B/C/D",   "normal", 1, "A1/B/C/D", FALSE, "A3/B/C/D", TRUE},
+      {4, "A1/B/C/D/E", "normal", 1, "A1/B/C/D/E", MOVED_HERE},
+
+      {4, "A2/B/C/D",   "normal", 1, "A2/B/C/D", FALSE, "A1/B/C/D", TRUE},
+      {4, "A2/B/C/D/E", "normal", 1, "A2/B/C/D/E", MOVED_HERE},
+
+      {4, "A3/B/C/D",   "normal", 1, "A3/B/C/D", FALSE, "A2/B/C/D", TRUE},
+      {4, "A3/B/C/D/E", "normal", 1, "A3/B/C/D/E", MOVED_HERE},
+
+      {5, "A1/B/C/D/E", "normal", 1, "A2/B/C/D/E", FALSE, "A3/B/C/D/E", TRUE},
+      {5, "A2/B/C/D/E", "normal", 1, "A3/B/C/D/E", FALSE, "A1/B/C/D/E", TRUE},
+      {5, "A3/B/C/D/E", "normal", 1, "A1/B/C/D/E", FALSE, "A2/B/C/D/E", TRUE},
+      {0}
+    };
+    SVN_ERR(check_db_rows(&b, "", nodes));
+  }
+
+  /* A1->A3, A3/B->A2/B, A2/B/C/D->A1/B/C/D, A1/B/C/D/E->A3/B/C/D/E */
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A1"), pool, pool));
+  SVN_ERR(check_moved_to(moved_tos, 0, 1, "A3"));
+  SVN_TEST_ASSERT(moved_tos->nelts == 1);
+
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A1/B"), pool, pool));
+  SVN_ERR(check_moved_to(moved_tos, 0, 1, "A3/B"));
+  SVN_ERR(check_moved_to(moved_tos, 1, 2, "A2/B"));
+  SVN_TEST_ASSERT(moved_tos->nelts == 2);
+
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A1/B/C"), pool, pool));
+  SVN_ERR(check_moved_to(moved_tos, 0, 1, "A3/B/C"));
+  SVN_ERR(check_moved_to(moved_tos, 1, 2, "A2/B/C"));
+  SVN_TEST_ASSERT(moved_tos->nelts == 2);
+
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A1/B/C/D"), pool, pool));
+  SVN_ERR(check_moved_to(moved_tos, 0, 1, "A3/B/C/D"));
+  SVN_ERR(check_moved_to(moved_tos, 1, 2, "A2/B/C/D"));
+  SVN_ERR(check_moved_to(moved_tos, 2, 4, "A1/B/C/D"));
+  SVN_TEST_ASSERT(moved_tos->nelts == 3);
+
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A1/B/C/D/E"), pool, pool));
+  SVN_ERR(check_moved_to(moved_tos, 0, 1, "A3/B/C/D/E"));
+  SVN_ERR(check_moved_to(moved_tos, 1, 2, "A2/B/C/D/E"));
+  SVN_ERR(check_moved_to(moved_tos, 2, 4, "A1/B/C/D/E"));
+  SVN_ERR(check_moved_to(moved_tos, 3, 5, "A3/B/C/D/E"));
+  SVN_TEST_ASSERT(moved_tos->nelts == 4);
+
+  return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+mixed_rev_move(const svn_test_opts_t *opts, apr_pool_t *pool)
+{
+  svn_test__sandbox_t b;
+  apr_array_header_t *moved_tos;
+
+  SVN_ERR(svn_test__sandbox_create(&b, "mixed_rev_move", opts, pool));
+
+  SVN_ERR(wc_mkdir(&b, "A"));
+  SVN_ERR(wc_commit(&b, ""));
+  SVN_ERR(wc_mkdir(&b, "A/B"));
+  SVN_ERR(wc_commit(&b, ""));
+  SVN_ERR(wc_mkdir(&b, "A/B/C"));
+  SVN_ERR(wc_commit(&b, ""));
+
+  {
+    nodes_row_t nodes[] = {
+      {0, "",      "normal", 0, ""},
+      {0, "A",     "normal", 1, "A"},
+      {0, "A/B",   "normal", 2, "A/B"},
+      {0, "A/B/C", "normal", 3, "A/B/C"},
+      {0}
+    };
+    SVN_ERR(check_db_rows(&b, "", nodes));
+  }
+
+  SVN_ERR(wc_move(&b, "A", "X"));
+
+  {
+    nodes_row_t nodes[] = {
+      {0, "",      "normal",       0, ""},
+      {0, "A",     "normal",       1, "A"},
+      {0, "A/B",   "normal",       2, "A/B"},
+      {0, "A/B/C", "normal",       3, "A/B/C"},
+      {1, "A",     "base-deleted", NO_COPY_FROM, "X"},
+      {1, "A/B",   "base-deleted", NO_COPY_FROM},
+      {1, "A/B/C", "base-deleted", NO_COPY_FROM},
+      {1, "X",     "normal",       1, "A", MOVED_HERE},
+      {1, "X/B",   "not-present",  2, "A/B"},
+      {2, "X/B",   "normal",       2, "A/B", MOVED_HERE},
+      {2, "X/B/C", "not-present",  3, "A/B/C"},
+      {3, "X/B/C", "normal",       3, "A/B/C", MOVED_HERE},
+      {0}
+    };
+    SVN_ERR(check_db_rows(&b, "", nodes));
+  }
+
+  /* ### These values PASS but I'm not sure they are correct. */
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A/B/C"), pool, pool));
+  SVN_ERR(check_moved_to(moved_tos, 0, 1, "X/B/C"));
+  SVN_TEST_ASSERT(moved_tos->nelts == 1);
+
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A/B"), pool, pool));
+  SVN_ERR(check_moved_to(moved_tos, 0, 1, "X/B"));
+  SVN_TEST_ASSERT(moved_tos->nelts == 1);
+
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A"), pool, pool));
+  SVN_ERR(check_moved_to(moved_tos, 0, 1, "X"));
+  SVN_TEST_ASSERT(moved_tos->nelts == 1);
+
+
+  /* This move doesn't record moved-to */
+  SVN_ERR(wc_move(&b, "X/B", "X/Y"));
+
+  {
+    nodes_row_t nodes[] = {
+      {0, "",      "normal",       0, ""},
+      {0, "A",     "normal",       1, "A"},
+      {0, "A/B",   "normal",       2, "A/B"},
+      {0, "A/B/C", "normal",       3, "A/B/C"},
+      {1, "A",     "base-deleted", NO_COPY_FROM, "X"},
+      {1, "A/B",   "base-deleted", NO_COPY_FROM},
+      {1, "A/B/C", "base-deleted", NO_COPY_FROM},
+      {1, "X",     "normal",       1, "A", MOVED_HERE},
+      {1, "X/B",   "not-present",  2, "A/B"},
+      {2, "X/Y",   "normal",       2, "A/B"},
+      {2, "X/Y/C", "not-present",  NO_COPY_FROM},
+      {3, "X/Y/C", "normal",       3, "A/B/C"},
+      {0}
+    };
+    SVN_ERR(check_db_rows(&b, "", nodes));
+  }
+
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A/B/C"), pool, pool));
+  SVN_TEST_ASSERT(moved_tos->nelts == 0);
+
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A/B"), pool, pool));
+  SVN_TEST_ASSERT(moved_tos->nelts == 0);
+
+  SVN_ERR(svn_wc__db_follow_moved_to(&moved_tos, b.wc_ctx->db,
+                                     wc_path(&b, "A"), pool, pool));
+  SVN_ERR(check_moved_to(moved_tos, 0, 1, "X"));
+  SVN_TEST_ASSERT(moved_tos->nelts == 1);
+
+  return SVN_NO_ERROR;
+}
 
 
 /* ---------------------------------------------------------------------- */
@@ -4668,5 +5067,11 @@ struct svn_test_descriptor_t test_funcs[
                        "move_added"),
     SVN_TEST_OPTS_XFAIL(move_update,
                        "move_update"),
+    SVN_TEST_OPTS_PASS(test_scan_delete,
+                       "scan_delete"),
+    SVN_TEST_OPTS_PASS(test_follow_moved_to,
+                       "follow_moved_to"),
+    SVN_TEST_OPTS_PASS(mixed_rev_move,
+                       "mixed_rev_move"),
     SVN_TEST_NULL
   };

Modified: subversion/branches/master-passphrase/subversion/tests/libsvn_wc/utils.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/tests/libsvn_wc/utils.c?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/tests/libsvn_wc/utils.c (original)
+++ subversion/branches/master-passphrase/subversion/tests/libsvn_wc/utils.c Wed Jun 27 15:12:37 2012
@@ -81,17 +81,18 @@ create_repos_and_wc(const char **repos_u
 
   /* Create a WC. Set *WC_ABSPATH to its path. */
   {
+    apr_pool_t *subpool = svn_pool_create(pool); /* To cleanup CTX */
     svn_client_ctx_t *ctx;
     svn_opt_revision_t head_rev = { svn_opt_revision_head, {0} };
 
-    SVN_ERR(svn_client_create_context(&ctx, pool));
-    /* SVN_ERR(svn_config_get_config(&ctx->config, config_dir, pool)); */
+    SVN_ERR(svn_client_create_context(&ctx, subpool));
     SVN_ERR(svn_dirent_get_absolute(wc_abspath, wc_path, pool));
     SVN_ERR(svn_client_checkout3(NULL, *repos_url, *wc_abspath,
                                  &head_rev, &head_rev, svn_depth_infinity,
                                  FALSE /* ignore_externals */,
                                  FALSE /* allow_unver_obstructions */,
-                                 ctx, pool));
+                                 ctx, subpool));
+    svn_pool_destroy(subpool);
   }
 
   /* Register this WC for cleanup. */

Propchange: subversion/branches/master-passphrase/subversion/tests/libsvn_wc/wc-incomplete-tester.c
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/master-passphrase/subversion/tests/svn_test.h
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/tests/svn_test.h?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/tests/svn_test.h (original)
+++ subversion/branches/master-passphrase/subversion/tests/svn_test.h Wed Jun 27 15:12:37 2012
@@ -54,7 +54,9 @@ extern "C" {
   } while (0)
 
 /** Handy macro for testing an expected svn_error_t return value.
- * EXPECTED must be a real error (neither SVN_NO_ERROR nor APR_SUCCESS). */
+ * EXPECTED must be a real error (neither SVN_NO_ERROR nor APR_SUCCESS).
+ * The error returned by EXPR will be cleared.
+ */
 #define SVN_TEST_ASSERT_ERROR(expr, expected)                             \
   do {                                                                    \
     svn_error_t *err__ = (expr);                                          \
@@ -68,9 +70,13 @@ extern "C" {
                                         "Expected error %d but got %s",   \
                                         (expected),                       \
                                         "SVN_NO_ERROR");                  \
+    svn_error_clear(err__);                                               \
   } while (0)
 
 /** Handy macro for testing string equality.
+ *
+ * EXPR and/or EXPECTED_EXPR may be NULL which compares equal to NULL and
+ * not equal to any non-NULL string.
  */
 #define SVN_TEST_STRING_ASSERT(expr, expected_expr)                 \
   do {                                                              \
@@ -79,8 +85,8 @@ extern "C" {
                                                                     \
     if (tst_str2 == NULL && tst_str1 == NULL)                       \
       break;                                                        \
-    if (   (tst_str2 != NULL && tst_str1 == NULL)                   \
-        || (strcmp(tst_str2, tst_str1) != 0)  )                     \
+    if ((tst_str1 == NULL) || (tst_str2 == NULL)                    \
+        || (strcmp(tst_str2, tst_str1) != 0))                       \
       return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,           \
           "Strings not equal\n  Expected: '%s'\n  Found:    '%s'"   \
           "\n  at %s:%d",                                           \

Modified: subversion/branches/master-passphrase/subversion/tests/svn_test_main.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/subversion/tests/svn_test_main.c?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/subversion/tests/svn_test_main.c (original)
+++ subversion/branches/master-passphrase/subversion/tests/svn_test_main.c Wed Jun 27 15:12:37 2012
@@ -345,7 +345,6 @@ main(int argc, const char *argv[])
   const char *prog_name;
   int i;
   svn_boolean_t got_error = FALSE;
-  apr_allocator_t *allocator;
   apr_pool_t *pool, *test_pool;
   svn_boolean_t ran_a_test = FALSE;
   svn_boolean_t list_mode = FALSE;
@@ -368,16 +367,10 @@ main(int argc, const char *argv[])
       exit(1);
     }
 
-  /* set up the global pool.  Use a separate mutexless allocator,
-   * given this application is single threaded.
+  /* set up the global pool.  Use a separate allocator to limit memory
+   * usage but make it thread-safe to allow for multi-threaded tests.
    */
-  if (apr_allocator_create(&allocator))
-    return EXIT_FAILURE;
-
-  apr_allocator_max_free_set(allocator, SVN_ALLOCATOR_RECOMMENDED_MAX_FREE);
-
-  pool = svn_pool_create_ex(NULL, allocator);
-  apr_allocator_owner_set(allocator, pool);
+  pool = apr_allocator_owner_get(svn_pool_create_allocator(TRUE));
 
   /* Remember the command line */
   test_argc = argc;

Modified: subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svnbuild.sh
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svnbuild.sh?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svnbuild.sh (original)
+++ subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svnbuild.sh Wed Jun 27 15:12:37 2012
@@ -22,5 +22,7 @@
 set -e
 set -x
 
+export JAVA_HOME=/usr/local/jdk-1.7.0
+
 branch="$(basename $(svn info . | grep ^URL  | cut -d' ' -f2))"
-(cd .. && gmake BRANCH="$branch")
+(cd .. && gmake BRANCH="$branch" THREADING="no")

Modified: subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh (original)
+++ subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh Wed Jun 27 15:12:37 2012
@@ -24,7 +24,7 @@ set -x
 
 branch="$(basename $(svn info . | grep ^URL  | cut -d' ' -f2))"
 export MALLOC_OPTIONS=S
-(cd .. && gmake BRANCH="$branch" svn-check-bindings)
+(cd .. && gmake BRANCH="$branch" THREADING="no" svn-check-bindings)
 grep -q "^Result: PASS$" tests.log.bindings.pl || exit 1
 grep -q "^OK$" tests.log.bindings.py || exit 1
 tail -n 1 tests.log.bindings.rb | grep -q ", 0 failures, 0 errors" || exit 1

Modified: subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svncheck.sh
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svncheck.sh?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svncheck.sh (original)
+++ subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svncheck.sh Wed Jun 27 15:12:37 2012
@@ -24,11 +24,11 @@ set -x
 
 branch="$(basename $(svn info . | grep ^URL  | cut -d' ' -f2))"
 export MALLOC_OPTIONS=S
-(cd .. && gmake BRANCH="$branch" PARALLEL="" \
+(cd .. && gmake BRANCH="$branch" PARALLEL="" THREADING="no" \
                                   svn-check-local \
                                   svn-check-svn \
                                   svn-check-neon \
                                   svn-check-serf)
-grep -q "^FAIL:" tests.log* && exit 1
-grep -q "^XPASS:" tests.log* && exit 1
+grep -q "^FAIL:" tests.log.svn-check* && exit 1
+grep -q "^XPASS:" tests.log.svn-check* && exit 1
 exit 0

Modified: subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svnclean.sh
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svnclean.sh?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svnclean.sh (original)
+++ subversion/branches/master-passphrase/tools/buildbot/slaves/bb-openbsd/svnclean.sh Wed Jun 27 15:12:37 2012
@@ -24,9 +24,10 @@ set -x
 
 branch="$(basename $(svn info . | grep ^URL  | cut -d' ' -f2))"
 (test -h ../svn-trunk || ln -s build ../svn-trunk)
-for i in 3 4 5 6 7; do
+for i in 6 7; do
   (test -h ../svn-1.${i}.x || ln -s build ../svn-1.${i}.x)
 done
 svn update ../../unix-build
 (test -h ../GNUmakefile || ln -s ../unix-build/Makefile.svn ../GNUmakefile)
 (cd .. && gmake BRANCH="$branch" reset clean)
+rm -f tests.log* fails.log*

Modified: subversion/branches/master-passphrase/tools/buildbot/slaves/centos/svnbuild.sh
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/buildbot/slaves/centos/svnbuild.sh?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/buildbot/slaves/centos/svnbuild.sh (original)
+++ subversion/branches/master-passphrase/tools/buildbot/slaves/centos/svnbuild.sh Wed Jun 27 15:12:37 2012
@@ -23,6 +23,7 @@
 set -x
 
 export MAKEFLAGS=-j4
+export PYTHON=/usr/local/python25/bin/python
 
 echo "========= autogen.sh"
 ./autogen.sh || exit $?
@@ -30,15 +31,17 @@ echo "========= autogen.sh"
 echo "========= configure"
 #            --with-junit=/usr/share/java/junit.jar
 #            --with-jdk=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64 \
+#            --without-berkeley-db \
 ./configure --enable-javahl --enable-maintainer-mode \
             --with-neon=/usr \
+            --with-serf=/usr/local \
             --with-apxs=/usr/sbin/apxs \
-            --without-berkeley-db \
+            --with-berkeley-db \
             --with-apr=/usr \
             --with-apr-util=/usr \
             --with-jdk=/opt/java/jdk1.6.0_15 \
 	    --with-junit=/home/bt/junit-4.4.jar \
-	    --with-sqlite=/home/bt/sqlite-3.6.17/sqlite3.c \
+	    --with-sqlite=/home/bt/packages/sqlite-amalgamation-dir/sqlite3.c \
             || exit $?
 
 echo "========= make"

Modified: subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd (original)
+++ subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd Wed Jun 27 15:12:37 2012
@@ -67,6 +67,12 @@ for %%i in (*.dll) do (
 )
 popd
 
+svnversion . /1.7.x | find "S" > nul:
+IF ERRORLEVEL 1 (
+  ECHO --- Building 1.7.x: Skipping perl tests ---
+  EXIT /B %result%
+)
+
 SET PERL5LIB=%PERL5LIB%;%TESTDIR%\swig\pl-release;
 pushd subversion\bindings\swig\perl\native
 perl -MExtUtils::Command::MM -e test_harness() t\*.t

Modified: subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd (original)
+++ subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd Wed Jun 27 15:12:37 2012
@@ -31,12 +31,13 @@ IF NOT EXIST "imports\" (
   svn co --username guest --password "" http://sharpsvn.open.collab.net/svn/sharpsvn/trunk/imports imports
 )
 IF NOT EXIST build\imports.done (
+  svn up imports
   copy /y imports\dev-default.build default.build
   nant prep-dev %NANTARGS%
   IF ERRORLEVEL 1 (
     exit /B 1
   )
-  del release\bin\*svn* release\bin\_*.*
+  del release\bin\*svn* release\bin\_*.* 2>nul:
   echo. > build\imports.done
 )
 
@@ -56,7 +57,10 @@ taskkill /im svnserve.exe /f 2> nul:
 taskkill /im svnrdump.exe /f 2> nul:
 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 java.exe /f 2> nul:
+taskkill /im perl.exe /f 2> nul:
 IF EXIST "%TESTDIR%\tests\subversion\tests\cmdline\httpd\" (
   rmdir /s /q  "%TESTDIR%\tests\subversion\tests\cmdline\httpd"
 )

Modified: subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-test.cmd
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-test.cmd?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-test.cmd (original)
+++ subversion/branches/master-passphrase/tools/buildbot/slaves/win32-SharpSvn/svntest-test.cmd Wed Jun 27 15:12:37 2012
@@ -51,10 +51,10 @@ IF "%1" == "-r" (
     SET SVN=1
     SHIFT
 ) ELSE IF "%1" == "serf" (
-    SET SERF=1
+    SET DAV=1
     SHIFT
-) ELSE IF "%1" == "neon" (
-    SET NEON=1
+) ELSE IF "%1" == "dav" (
+    SET DAV=1
     SHIFT
 ) ELSE (
     SET ARGS=!ARGS! -t %1
@@ -63,6 +63,7 @@ IF "%1" == "-r" (
 
 IF NOT "%1" == "" GOTO next
 
+taskkill /im svnserve.exe httpd.exe /f 2> nul:
 
 IF NOT EXIST "%TESTDIR%\bin" MKDIR "%TESTDIR%\bin"
 xcopy /y /i ..\deps\release\bin\*.dll "%TESTDIR%\bin"
@@ -76,22 +77,13 @@ IF "%LOCAL%+%FSFS%" == "1+1" (
 )
 
 IF "%SVN%+%FSFS%" == "1+1" (
-  taskkill /im svnserve.exe /f 2> nul:
-  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs -u svn://localhost %ARGS% "%TESTDIR%\tests"
-  win-tests.py -c %PARALLEL% %MODE% -f fsfs -u svn://localhost %ARGS% "%TESTDIR%\tests"
+  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs -u svn://127.0.0.1 %ARGS% "%TESTDIR%\tests"
+  win-tests.py -c %PARALLEL% %MODE% -f fsfs -u svn://127.0.0.1 %ARGS% "%TESTDIR%\tests"
   IF ERRORLEVEL 1 EXIT /B 1
 )
 
-IF "%SERF%+%FSFS%" == "1+1" (
-  taskkill /im httpd.exe /f 2> nul:
-  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library serf --httpd-dir "%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u http://localhost:%TESTPORT% %ARGS% "%TESTDIR%\tests"
-  win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library serf --httpd-dir "%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u http://localhost:%TESTPORT% %ARGS% "%TESTDIR%\tests"
-  IF ERRORLEVEL 1 EXIT /B 1
-)
-
-IF "%NEON%+%FSFS%" == "1+1" (
-  taskkill /im httpd.exe /f 2> nul:
-  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library neon --httpd-dir "%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u http://localhost:%TESTPORT% %ARGS% "%TESTDIR%\tests"
-  win-tests.py -c %PARALLEL% %MODE% -f fsfs --http-library neon --httpd-dir "%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u http://localhost:%TESTPORT% %ARGS% "%TESTDIR%\tests"
+IF "%DAV%+%FSFS%" == "1+1" (
+  echo win-tests.py -c %PARALLEL% %MODE% -f fsfs --httpd-dir "%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u http://127.0.0.1:%TESTPORT% %ARGS% "%TESTDIR%\tests"
+  win-tests.py -c %PARALLEL% %MODE% -f fsfs --httpd-dir "%CD%\..\deps\release\httpd" --httpd-port %TESTPORT% -u http://127.0.0.1:%TESTPORT% %ARGS% "%TESTDIR%\tests"
   IF ERRORLEVEL 1 EXIT /B 1
 )

Modified: subversion/branches/master-passphrase/tools/client-side/bash_completion
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/client-side/bash_completion?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/client-side/bash_completion (original)
+++ subversion/branches/master-passphrase/tools/client-side/bash_completion Wed Jun 27 15:12:37 2012
@@ -479,7 +479,7 @@ _svn()
 
 	    [[ $previous = '--extensions' || $previous = '-x' ]] && \
 		values="--unified --ignore-space-change \
-   		        --ignore-all-space --ignore-eol-style"
+		   --ignore-all-space --ignore-eol-style --show-c-functions"
 
 	    [[ $previous = '--depth' ]] && \
 		values='empty files immediates infinity'
@@ -494,8 +494,8 @@ _svn()
 		    # from svn help resolve
 		    values='base working mine-full theirs-full'
 		else # checkout merge switch update
-		    # not implemented yet: mine-conflict theirs-conflict
-		    values='postpone base mine-full theirs-full edit launch'
+		    values="postpone base mine-full theirs-full edit launch \
+			mine-conflict theirs-conflict"
 		fi
 	    }
 
@@ -889,7 +889,8 @@ _svn()
                          --parents"
 		;;
 	patch)
-		cmdOpts="$qOpts $pOpts --dry-run --ignore-whitespace --reverse-diff --strip"
+		cmdOpts="$qOpts $pOpts --dry-run --ignore-whitespace \
+			--reverse-diff --strip"
 		;;
 	propdel|pdel|pd)
 		cmdOpts="$qOpts -R --recursive $rOpts $pOpts $cOpts \

Propchange: subversion/branches/master-passphrase/tools/client-side/mergeinfo-sanitizer.py
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/master-passphrase/tools/dev/benchmarks/large_dirs/create_bigdir.sh
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/dev/benchmarks/large_dirs/create_bigdir.sh?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/dev/benchmarks/large_dirs/create_bigdir.sh (original)
+++ subversion/branches/master-passphrase/tools/dev/benchmarks/large_dirs/create_bigdir.sh Wed Jun 27 15:12:37 2012
@@ -124,6 +124,20 @@ run_svn_del() {
   fi
 }
 
+run_svn_del_many() {
+  printf "\n" > files.lst
+  sequence=`get_sequence 2 ${1}`
+  for i in $sequence; do
+    printf "$WC/${1}_c/$i\n" >> files.lst
+  done
+
+  if [ "${VALGRIND}" = "" ] ; then
+    time ${SVN} del -q --targets files.lst > /dev/null
+  else
+    ${VALGRIND} ${VG_OUTFILE}="${VG_TOOL}.out.del_many.$1" ${SVN} del -q --targets files.lst > /dev/null
+  fi
+}
+
 run_svn_ci() {
   if [ "${VALGRIND}" = "" ] ; then
     time ${SVN} ci $WC/$1 -m "" -q > /dev/null
@@ -185,12 +199,13 @@ while [ $FILECOUNT -lt $MAXCOUNT ]; do
   run_svn_del ${FILECOUNT} 1
 
   printf "\tDeleting files ... \t"
-  time sh -c "
-  for i in $sequence; do
-    ${SVN} del $WC/${FILECOUNT}_c/\$i -q
-  done "
+  if [ "$FILECOUNT" == "1" ] ; then
+    printf " skipped (0 files to delete)\n"
+  else
+    run_svn_del_many ${FILECOUNT}
+  fi
 
-  printf "\tCommit deletions ...\t"
+  printf "\tCommit deletions ..\t"
   run_svn_ci ${FILECOUNT}_c del
 
   rm -rf $WC

Propchange: subversion/branches/master-passphrase/tools/dev/gdb-py/svndbg/__init__.py
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/master-passphrase/tools/dev/gdb-py/svndbg/printers.py
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/dev/gdb-py/svndbg/printers.py?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/dev/gdb-py/svndbg/printers.py (original)
+++ subversion/branches/master-passphrase/tools/dev/gdb-py/svndbg/printers.py Wed Jun 27 15:12:37 2012
@@ -120,6 +120,8 @@ class AprHashPrinter:
     def to_string(self):
         """Return a string to be displayed before children are displayed, or
            return None if we don't want any such."""
+        if not self.hash_p:
+            return 'NULL'
         return 'hash of ' + str(apr_hash_count(self.hash_p)) + ' items'
 
     def children(self):
@@ -135,16 +137,6 @@ class PtrAprHashPrinter(AprHashPrinter):
     def __init__(self, val):
         self.hash_p = val
 
-    def to_string(self):
-        if not self.hash_p:
-            return 'NULL'
-        return AprHashPrinter.to_string(self)
-
-    def children(self):
-        if not self.hash_p:
-            return []
-        return AprHashPrinter.children(self)
-
 class AprArrayPrinter:
     """for 'apr_array_header_t' of unknown elements"""
     def __init__(self, val):
@@ -171,16 +163,6 @@ class PtrAprArrayPrinter(AprArrayPrinter
         else:
             self.array = val.dereference()
 
-    def to_string(self):
-        if not self.array:
-            return 'NULL'
-        return AprArrayPrinter.to_string(self)
-
-    def children(self):
-        if not self.array:
-            return []
-        return AprArrayPrinter.children(self)
-
 
 ########################################################################
 
@@ -214,7 +196,10 @@ class SvnMergeinfoCatalogPrinter:
 
     def children(self):
         if self.hash_p == 0:
-            return None
+            # Return an empty list so GDB prints only the 'NULL' that is
+            # returned by to_string().  If instead we were to return None
+            # here, GDB would issue a 'not iterable' error message.
+            return []
         mergeinfoType = gdb.lookup_type('svn_mergeinfo_t')
         return children_as_map(children_of_apr_hash(self.hash_p, mergeinfoType))
 

Propchange: subversion/branches/master-passphrase/tools/dev/gdb-py/svndbg/printers.py
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/master-passphrase/tools/dev/gen-py-errors.py
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/dev/gen-py-errors.py?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/dev/gen-py-errors.py (original)
+++ subversion/branches/master-passphrase/tools/dev/gen-py-errors.py Wed Jun 27 15:12:37 2012
@@ -23,44 +23,87 @@
 # ====================================================================
 #
 #
-#  Meant to be run from the root of a Subversion working copy.  If anybody
-#  wants to do some path magic to improve that use, feel free.
-
-import sys, os
-sys.path.append(os.path.join('subversion', 'bindings', 'swig',
-                             'python', 'tests'))
-
+# Locates svn_error_codes.h based on its relative location to this script.
+#
+# Generates to STDOUT. Typically, redirect this into svntest/err.py
+#
 
-import setup_path
+import sys
+import os
+import re
 
-header = '''#!/usr/bin/env python
+HEADER = '''#!/usr/bin/env python
 ### This file automatically generated by tools/dev/gen-py-error.py,
 ### which see for more information
 ###
 ### It is versioned for convenience.
-
 '''
 
+# Established by svn 1.0. May as well hard-code these.
+APR_OS_START_ERROR = 20000
+APR_OS_START_USERERR = APR_OS_START_ERROR + 50000 * 2
+SVN_ERR_CATEGORY_SIZE = 5000
+
+RE_CAT_NAME = re.compile(r'SVN_ERR_([A-Z_]+)_CATEG')
+RE_CAT_VALUE = re.compile(r'\d+')
+
+RE_DEF_NAME = re.compile(r'SVN_ERRDEF\(([A-Z0-9_]+)')
+RE_DEF_VALUE = re.compile(r'SVN_ERR_([A-Z_]+)_CATEG[^0-9]*([0-9]+)')
+
+
+def write_output(codes):
+  print HEADER
+
+  for name, value in codes:
+    # skip SVN_ERR_ on the name
+    print '%s = %d' % (name[8:], value)
+
+
+def main(codes_fname):
+  categ = { }
+  codes = [ ]
+
+  f = open(codes_fname)
+
+  # Parse all the category start values
+  while True:
+    line = f.next()
+    m = RE_CAT_NAME.search(line)
+    if m:
+      name = m.group(1)
+      m = RE_CAT_VALUE.search(f.next())
+      assert m
+      value = int(m.group(0))
+      categ[name] = APR_OS_START_USERERR + value * SVN_ERR_CATEGORY_SIZE
+
+    elif line.strip() == 'SVN_ERROR_START':
+      break
+
+  # Parse each of the error values
+  while True:
+    line = f.next()
+    m = RE_DEF_NAME.search(line)
+    if m:
+      name = m.group(1)
+      line = f.next()
+      m = RE_DEF_VALUE.search(line)
+      if not m:
+        # SVN_ERR_WC_NOT_DIRECTORY is defined as equal to NOT_WORKING_COPY
+        # rather than relative to SVN_ERR_WC_CATEGORY_START
+        #print 'SKIP:', line
+        continue
+      cat = m.group(1)
+      value = int(m.group(2))
+      codes.append((name, categ[cat] + value))
 
-def write_output(errs, filename):
-  out = open(filename, 'w')
-  out.write(header)
-
-  for name, val in errs:
-    out.write('%s = %d\n' % (name, val))
-
-  out.close()
-
-
-def main(output_filename):
-  import core
+    elif line.strip() == 'SVN_ERROR_END':
+      break
 
-  errs = [e for e in dir(core.svn.core) if e.startswith('SVN_ERR_')]
-  codes = []
-  for e in errs:
-    codes.append((e[8:], getattr(core.svn.core, e)))
-  write_output(codes, output_filename)
+  write_output(sorted(codes))
 
 
 if __name__ == '__main__':
-  main(os.path.join('subversion', 'tests', 'cmdline', 'svntest', 'err.py'))
+  this_dir = os.path.dirname(os.path.abspath(__file__))
+  codes_fname = os.path.join(this_dir, os.path.pardir, os.path.pardir,
+                             'subversion', 'include', 'svn_error_codes.h')
+  main(codes_fname)

Propchange: subversion/branches/master-passphrase/tools/dev/histogram.py
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/master-passphrase/tools/dev/mergegraph/mergegraph.py
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/dev/mergegraph/mergegraph.py?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/dev/mergegraph/mergegraph.py (original)
+++ subversion/branches/master-passphrase/tools/dev/mergegraph/mergegraph.py Wed Jun 27 15:12:37 2012
@@ -65,7 +65,8 @@ from pydot import Node, Edge
 
 def mergeinfo_to_node_list(mi):
   """Convert a mergeinfo string such as '/foo:1,3-5*' into a list of
-     node names such as ['foo1', 'foo3', 'foo4', 'foo5']."""
+     node names such as ['foo1', 'foo3', 'foo4', 'foo5'].
+  """
   ### Doesn't yet strip the leading slash.
   l = []
   if mi:
@@ -89,7 +90,8 @@ def mergeinfo_to_node_list(mi):
 
 class MergeGraph(pydot.Graph):
   """Base class, not intended for direct use.  Use MergeDot for the main
-     graph and MergeSubgraph for a subgraph."""
+     graph and MergeSubgraph for a subgraph.
+  """
 
   def mk_origin_node(graph, name, label):
     """Add a node to the graph"""
@@ -169,13 +171,15 @@ class MergeGraph(pydot.Graph):
 
   def add_annotation(graph, node, label, color='lightblue'):
     """Add a graph node that serves as an annotation to a normal node.
-       More than one annotation can be added to the same normal node."""
+       More than one annotation can be added to the same normal node.
+    """
     subg_name = node + '_annotations'
 
     def get_subgraph(graph, name):
       """Equivalent to pydot.Graph.get_subgraph() when there is no more than
          one subgraph of the given name, but working aroung a bug in
-         pydot.Graph.get_subgraph()."""
+         pydot.Graph.get_subgraph().
+      """
       for subg in graph.get_subgraph_list():
         if subg.get_name() == name:
           return subg
@@ -298,7 +302,12 @@ class MergeDot(MergeGraph, pydot.Dot):
     """Save this merge graph to the given file format. If filename is None,
        construct a filename from the basename of the original file (as passed
        to the constructor and then stored in graph.basename) and the suffix
-       according to the given format."""
+       according to the given format.
+    """
     if not filename:
       filename = graph.basename + '.' + format
-    pydot.Dot.write(graph, filename, format=format)
+    if format == 'sh':
+      import save_as_sh
+      save_as_sh.write_sh_file(graph, filename)
+    else:
+      pydot.Dot.write(graph, filename, format=format)

Modified: subversion/branches/master-passphrase/tools/dev/svnraisetreeconflict/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/dev/svnraisetreeconflict/main.c?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/dev/svnraisetreeconflict/main.c (original)
+++ subversion/branches/master-passphrase/tools/dev/svnraisetreeconflict/main.c Wed Jun 27 15:12:37 2012
@@ -316,7 +316,6 @@ check_lib_versions(void)
 int
 main(int argc, const char *argv[])
 {
-  apr_allocator_t *allocator;
   apr_pool_t *pool;
   svn_error_t *err;
   apr_getopt_t *os;
@@ -336,13 +335,7 @@ main(int argc, const char *argv[])
   /* Create our top-level pool.  Use a separate mutexless allocator,
    * given this application is single threaded.
    */
-  if (apr_allocator_create(&allocator))
-    return EXIT_FAILURE;
-
-  apr_allocator_max_free_set(allocator, SVN_ALLOCATOR_RECOMMENDED_MAX_FREE);
-
-  pool = svn_pool_create_ex(NULL, allocator);
-  apr_allocator_owner_set(allocator, pool);
+  pool = apr_allocator_owner_get(svn_pool_create_allocator(FALSE));
 
   /* Check library versions */
   err = check_lib_versions();
@@ -372,10 +365,8 @@ main(int argc, const char *argv[])
       if (APR_STATUS_IS_EOF(status))
         break;
       if (status != APR_SUCCESS)
-        {
-          usage(pool);
-          return EXIT_FAILURE;
-        }
+        usage(pool);  /* this will exit() */
+
       switch (opt)
         {
         case 'h':
@@ -386,8 +377,7 @@ main(int argc, const char *argv[])
           exit(0);
           break;
         default:
-          usage(pool);
-          return EXIT_FAILURE;
+          usage(pool);  /* this will exit() */
         }
     }
 
@@ -403,10 +393,7 @@ main(int argc, const char *argv[])
     }
 
   if (remaining_argv->nelts < 1)
-    {
-      usage(pool);
-      return EXIT_FAILURE;
-    }
+    usage(pool);  /* this will exit() */
 
   /* Do the main task */
   SVNRAISETC_INT_ERR(raise_tree_conflict(remaining_argv->nelts,

Modified: subversion/branches/master-passphrase/tools/dev/unix-build/Makefile.svn
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/dev/unix-build/Makefile.svn?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/dev/unix-build/Makefile.svn (original)
+++ subversion/branches/master-passphrase/tools/dev/unix-build/Makefile.svn Wed Jun 27 15:12:37 2012
@@ -30,7 +30,12 @@
 #   |______________________________________________________________|
 
 ENABLE_PERL_BINDINGS ?= yes
-ENABLE_JAVA_BINDINGS ?= no # they don't build with thread-less APR...
+THREADING ?= yes
+ifeq ($(THREADING),yes)
+ENABLE_JAVA_BINDINGS ?= yes
+else
+ENABLE_JAVA_BINDINGS ?= no
+endif
 USE_APR_ICONV ?= no # set to yes to use APR iconv instead of GNU iconv
 PARALLEL ?= 1
 CLEANUP ?= 1
@@ -60,20 +65,21 @@ OBJDIR		= $(PWD)/objdir
 
 BDB_MAJOR_VER	= 4.7
 BDB_VER		= $(BDB_MAJOR_VER).25
-APR_VER		= 1.4.5
+APR_VER		= 1.4.6
 APR_ICONV_VER	= 1.2.1
 GNU_ICONV_VER	= 1.14
-APR_UTIL_VER	= 1.3.12
+APR_UTIL_VER	= 1.4.1
 HTTPD_VER	= 2.2.22
 NEON_VER	= 0.29.6
-SERF_VER	= 1.0.3
+SERF_VER	= 1.1.0
 SERF_OLD_VER	= 0.3.1
 CYRUS_SASL_VER	= 2.1.25
-SQLITE_VER	= 3071100
+SQLITE_VER	= 3071201
 LIBMAGIC_VER	= 5.11
 RUBY_VER	= 1.8.7-p358
 BZ2_VER	= 1.0.6
-PYTHON_VER	= 2.7.2
+PYTHON_VER	= 2.7.3
+JUNIT_VER	= 4.10
 
 BDB_DIST	= db-$(BDB_VER).tar.gz
 APR_ICONV_DIST	= apr-iconv-$(APR_ICONV_VER).tar.gz
@@ -86,6 +92,7 @@ LIBMAGIC_DIST	= file-$(LIBMAGIC_VER).tar
 RUBY_DIST	= ruby-$(RUBY_VER).tar.gz
 BZ2_DIST	= bzip2-$(BZ2_VER).tar.gz
 PYTHON_DIST	= Python-$(PYTHON_VER).tgz
+JUNIT_DIST	= junit-${JUNIT_VER}.jar
 
 DISTFILES	= $(DISTDIR)/$(NEON_DIST) \
 		$(DISTDIR)/$(SERF_DIST) \
@@ -97,7 +104,8 @@ DISTFILES	= $(DISTDIR)/$(NEON_DIST) \
 		$(DISTDIR)/$(LIBMAGIC_DIST) \
 		$(DISTDIR)/$(RUBY_DIST) \
 		$(DISTDIR)/$(BZ2_DIST) \
-		$(DISTDIR)/$(PYTHON_DIST)
+		$(DISTDIR)/$(PYTHON_DIST) \
+		$(DISTDIR)/$(JUNIT_DIST)
 
 FETCH_CMD	= wget -c
 
@@ -117,7 +125,9 @@ CYRUS_SASL_URL	= ftp://ftp.andrew.cmu.ed
 LIBMAGIC_URL	= ftp://ftp.astron.com/pub/file/$(LIBMAGIC_DIST)
 RUBY_URL	= http://ftp.ruby-lang.org/pub/ruby/1.8/$(RUBY_DIST)
 BZ2_URL		= http://bzip.org/$(BZ2_VER)/$(BZ2_DIST)
-PYTHON_URL	= http://python.org/ftp/python/2.7.2/$(PYTHON_DIST)
+PYTHON_URL	= http://python.org/ftp/python/$(PYTHON_VER)/$(PYTHON_DIST)
+JUNIT_URL	= http://cloud.github.com/downloads/KentBeck/junit/$(JUNIT_DIST)
+
 
 BDB_SRCDIR	= $(SRCDIR)/db-$(BDB_VER)
 APR_SRCDIR	= $(SRCDIR)/apr-$(APR_VER)
@@ -292,7 +302,7 @@ $(APR_OBJDIR)/.retrieved:
 	fi
 	touch $@
 
-ifdef THREADING
+ifeq ($(THREADING),yes)
 THREADS_FLAG=--enable-threads
 else
 THREADS_FLAG=--disable-threads
@@ -304,11 +314,6 @@ endif
 
 # configure apr
 $(APR_OBJDIR)/.configured: $(APR_OBJDIR)/.retrieved
-	cp $(APR_SRCDIR)/build/apr_hints.m4 \
-		$(APR_SRCDIR)/build/apr_hints.m4.orig
-	cat $(APR_SRCDIR)/build/apr_hints.m4.orig \
-		| sed -e '/^.*APR_ADDTO(CPPFLAGS, \[-D_POSIX_THREADS\]).*$$/d' \
-			> $(APR_SRCDIR)/build/apr_hints.m4
 	cd $(APR_SRCDIR) && ./buildconf
 	cd $(APR_OBJDIR) \
 		&& env CFLAGS="-O0 -g $(PROFILE_CFLAGS)" GREP="`which grep`" \
@@ -779,7 +784,7 @@ $(SQLITE_OBJDIR)/.retrieved: $(DISTDIR)/
 	tar -C $(SRCDIR) -zxf $(DISTDIR)/$(SQLITE_DIST)
 	touch $@
 
-ifdef THREADING
+ifeq ($(THREADING),yes)
 THREADSAFE_FLAG=--enable-threadsafe
 else
 THREADSAFE_FLAG=--disable-threadsafe
@@ -1076,6 +1081,14 @@ $(PYTHON_OBJDIR)/.installed: $(PYTHON_OB
 
 
 #######################################################################
+# junit
+#######################################################################
+
+# fetch distfile for junit
+$(DISTDIR)/$(JUNIT_DIST):
+	cd $(DISTDIR) && $(FETCH_CMD) $(JUNIT_URL)
+
+#######################################################################
 # svn
 #######################################################################
 
@@ -1119,12 +1132,20 @@ $(SVN_OBJDIR)/.retrieved:
 	fi
 	touch $@
 
-ifeq ($(BRANCH_MAJOR),1.6)
+ifeq ($(BRANCH_MAJOR),1.7)
+BDB_FLAG=db.h:$(PREFIX)/bdb/include:$(PREFIX)/bdb/lib:db-$(BDB_MAJOR_VER)
+SERF_FLAG=--with-serf="$(PREFIX)/serf"
+MOD_DAV_SVN=modules/svn-$(WC)/mod_dav_svn.so
+MOD_AUTHZ_SVN=modules/svn-$(WC)/mod_authz_svn.so
+LIBMAGIC_FLAG=--with-libmagic=$(PREFIX)/libmagic
+NEON_FLAG=--with-neon="$(PREFIX)/neon"
+else ifeq ($(BRANCH_MAJOR),1.6)
 BDB_FLAG=db.h:$(PREFIX)/bdb/include:$(PREFIX)/bdb/lib:db-$(BDB_MAJOR_VER)
 SERF_FLAG=--with-serf="$(PREFIX)/serf"
 MOD_DAV_SVN=modules/svn-$(WC)/mod_dav_svn.so
 MOD_AUTHZ_SVN=modules/svn-$(WC)/mod_authz_svn.so
 W_NO_SYSTEM_HEADERS=-Wno-system-headers
+NEON_FLAG=--with-neon="$(PREFIX)/neon"
 else ifeq ($(BRANCH_MAJOR),1.5)
 BDB_FLAG=$(PREFIX)/bdb
 SERF_FLAG=--with-serf="$(PREFIX)/serf-old"
@@ -1132,37 +1153,8 @@ MOD_DAV_SVN=modules/mod_dav_svn.so
 MOD_AUTHZ_SVN=modules/mod_authz_svn.so
 DISABLE_NEON_VERSION_CHECK=--disable-neon-version-check
 W_NO_SYSTEM_HEADERS=-Wno-system-headers
-else ifeq ($(BRANCH_MAJOR),1.4)
-BDB_FLAG=$(PREFIX)/bdb
-MOD_DAV_SVN=modules/mod_dav_svn.so
-MOD_AUTHZ_SVN=modules/mod_authz_svn.so
-DISABLE_NEON_VERSION_CHECK=--disable-neon-version-check
-W_NO_SYSTEM_HEADERS=-Wno-system-headers
-else ifeq ($(BRANCH_MAJOR),1.3)
-BDB_FLAG=$(PREFIX)/bdb
-MOD_DAV_SVN=modules/mod_dav_svn.so
-MOD_AUTHZ_SVN=modules/mod_authz_svn.so
-DISABLE_NEON_VERSION_CHECK=--disable-neon-version-check
-W_NO_SYSTEM_HEADERS=-Wno-system-headers
-else ifeq ($(BRANCH_MAJOR),1.2)
-BDB_FLAG=$(PREFIX)/bdb
-MOD_DAV_SVN=modules/mod_dav_svn.so
-MOD_AUTHZ_SVN=modules/mod_authz_svn.so
-DISABLE_NEON_VERSION_CHECK=--disable-neon-version-check
-W_NO_SYSTEM_HEADERS=-Wno-system-headers
-else ifeq ($(BRANCH_MAJOR),1.1)
-BDB_FLAG=$(PREFIX)/bdb
-MOD_DAV_SVN=modules/mod_dav_svn.so
-MOD_AUTHZ_SVN=modules/mod_authz_svn.so
-DISABLE_NEON_VERSION_CHECK=--disable-neon-version-check
-W_NO_SYSTEM_HEADERS=-Wno-system-headers
-else ifeq ($(BRANCH_MAJOR),1.0)
-BDB_FLAG=$(PREFIX)/bdb
-MOD_DAV_SVN=modules/mod_dav_svn.so
-MOD_AUTHZ_SVN=modules/mod_authz_svn.so
-DISABLE_NEON_VERSION_CHECK=--disable-neon-version-check
-W_NO_SYSTEM_HEADERS=-Wno-system-headers
-else
+NEON_FLAG=--with-neon="$(PREFIX)/neon"
+else # 1.8
 BDB_FLAG=db.h:$(PREFIX)/bdb/include:$(PREFIX)/bdb/lib:db-$(BDB_MAJOR_VER)
 SERF_FLAG=--with-serf="$(PREFIX)/serf"
 MOD_DAV_SVN=modules/svn-$(WC)/mod_dav_svn.so
@@ -1172,9 +1164,9 @@ endif
 
 ifeq ($(ENABLE_JAVA_BINDINGS),yes)
 	JAVAHL_FLAG=--enable-javahl=yes --with-jdk --with-jikes=no \
-		--with-junit=$(PWD)/junit.jar
+		--with-junit=$(DISTDIR)/$(JUNIT_DIST)
 else
-	JAVAHL_FLAG=--enable-javahl=no
+	JAVAHL_FLAG=--with-jdk=no
 endif
 
 ifdef PROFILE
@@ -1186,13 +1178,7 @@ SVN_WITH_SASL=--with-sasl="$(PREFIX)/cyr
 endif
 
 # configure svn
-$(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved
-	@if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
-		if [ ! -e $(PWD)/junit.jar ]; then \
-			echo "Please provide $(PWD)/junit.jar"; \
-			exit 1; \
-		fi; \
-	fi
+$(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)/.retrieved $(DISTDIR)/$(JUNIT_DIST)
 	cd $(SVN_SRCDIR) && ./autogen.sh
 	cd $(svn_builddir) && \
 		env LDFLAGS="-L$(PREFIX)/neon/lib -L$(PREFIX)/apr/lib" \
@@ -1205,7 +1191,7 @@ $(SVN_OBJDIR)/.configured: $(SVN_OBJDIR)
 			--prefix="$(SVN_PREFIX)" \
 			--with-apr="$(PREFIX)/apr" \
 			--with-apr-util="$(PREFIX)/apr" \
-			--with-neon="$(PREFIX)/neon" \
+			$(NEON_FLAG) \
 			$(SVN_WITH_HTTPD) \
 			$(SVN_WITH_SASL) \
 			$(SERF_FLAG) \
@@ -1423,10 +1409,16 @@ svn-check-prepare-ramdisk:
 			mkdir -p "$(RAMDISK)/tmp"; \
 	fi
 
+ifndef NEON_FLAG
+svn-check-neon:
+	@echo Neon is not supported by this build of Subversion, skipping tests
+	@true
+else
 svn-check-neon: $(HTTPD_CHECK_CONF) $(SVN_OBJDIR)/.compiled $(SVN_OBJDIR)/.bindings-compiled svn-check-prepare-ramdisk
 	$(HTTPD_START_CMD)
 	$(call do_check,BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=neon)
 	$(HTTPD_STOP_CMD)
+endif
 
 svn-check-serf: $(HTTPD_CHECK_CONF) $(SVN_OBJDIR)/.compiled $(SVN_OBJDIR)/.bindings-compiled svn-check-prepare-ramdisk
 	$(HTTPD_START_CMD)
@@ -1478,7 +1470,7 @@ svn-check-javahl:
 	-if [ $(ENABLE_JAVA_BINDINGS) = yes ]; then \
 		(cd $(svn_builddir) && \
 			env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) \
-			make check-javahl 2>&1) | \
+			make check-all-javahl 2>&1) | \
 				tee $(svn_builddir)/tests.log.bindings.javahl; \
 	fi
 

Modified: subversion/branches/master-passphrase/tools/dev/unix-build/README
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/dev/unix-build/README?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/dev/unix-build/README (original)
+++ subversion/branches/master-passphrase/tools/dev/unix-build/README Wed Jun 27 15:12:37 2012
@@ -22,12 +22,24 @@ repository.
 
 Usage
 =====
-First, choose a directory $(SVN_DEV) to set up the environment. Note
-that this directory cannot be changed later because the script
-hardcodes build and link paths relative to the current working
-directory.
+First, choose a directory $(SVN_DEV) to set up the environment.
+For example, $(SVN_DEV) could be the directory "~/svn".
+Note that this directory cannot be changed later because the script
+hardcodes build and link paths relative to the current working directory.
+
+  $ mkdir $(SVN_DEV)
+
+Now change into this directory and make the Makefile available in it:
+
+  $ cd $(SVN_DEV)
+  $ svn checkout https://svn.apache.org/repos/asf/subversion/trunk/tools/dev/unix-build
+  $ ln -s unix-build/Makefile.svn Makefile
+
+To fetch and build trunk, simply don't pass anything, just run 'make':
+
+  $ cd $(SVN_DEV)
+  $ make
 
-To fetch and build trunk, simply don't pass anything.
 Pass the branch you want to build in BRANCH, e.g.
 	$ make BRANCH="1.5.x"
 You can also pass a tag to build: 
@@ -39,19 +51,37 @@ than one working copy of the same branch
 When the script has finished fetching and building, it uses
 $(SVN_DEV)/prefix to install Subversion libraries and
 binaries. $(SVN_DEV)/prefix/svn-trunk (or whatever you choose to
-build) will contain the latest Subversion binaries: you should add
-$(SVN_DEV)/prefix/svn-trunk/bin to your $PATH to use them. The
-Makefile in $(SVN_DEV)/svn-trunk is configured to build with sane
+build) will contain the latest Subversion binaries. You can add
+$(SVN_DEV)/prefix/svn-trunk/bin to your $PATH to use them:
+
+  $ export PATH="$(SVN_DEV)/prefix/svn-trunk/bin:$PATH"
+
+The Makefile in $(SVN_DEV)/svn-trunk is configured to build with sane
 options: while developing Subversion, simply `svn up` to pull the
 latest changes, `make` and `make install` to install the binaries in
-$(SVN_DEV)/prefix/svn-trunk.
+$(SVN_DEV)/prefix/svn-trunk. This usually works fine. If not, you may
+need to use the 'svn-reset' target and recompile everything.
+
+If at any point, you want to recompile any of the packages with the
+default configuration in Makefile.svn, use the *-clean and *-reset
+target in Makefile.svn before trying to rebuild again. For example:
+
+  $ make svn-clean
+  $ make svn-reset
+  $ make
+
+Or, if you want to recompile svn and all dependencies:
+
+  $ make clean
+  $ make reset
+  $ make
+
+If you want to remove everything including the installed binaries effectively
+returning to the starting point, use the "nuke" target (BE CAREFUL, this will
+remove the 'svn' binary compiled from trunk which you might need to manage
+existing working copies):
 
-If at any point, you want to re-configure any of the packages to the
-default configuration in Makefile.svn, just run the "<PACKAGE>-reset"
-target in Makefile.svn before trying to rebuild again. If, in the
-extreme case, you want to remove everything including the installed
-binaries effectively returning to the starting point, use the "nuke"
-target.
+  $ make nuke
 
 Extended usage
 ==============

Modified: subversion/branches/master-passphrase/tools/dev/windows-build/Makefile
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/dev/windows-build/Makefile?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/dev/windows-build/Makefile (original)
+++ subversion/branches/master-passphrase/tools/dev/windows-build/Makefile Wed Jun 27 15:12:37 2012
@@ -31,7 +31,7 @@ INSTALLDIR=E:\svn
 
 EXPATVER=2.0.0
 HTTPDVER=2.2.13
-NEONVER=0.28.2
+SERFVER=1.1.0
 OPENSSLVER=0.9.8k
 SQLITEVER=3.6.3
 ZLIBVER=1.2.3
@@ -40,7 +40,6 @@ ZLIBVER=1.2.3
 PATCHESDIR=$(HOME)\mydiffs\svn
 OPENSSLDIR=$(SOURCESDIR)\openssl-$(OPENSSLVER)
 EXPATDIR=$(SOURCESDIR)\expat-$(EXPATVER)
-NEONDIR=$(SOURCESDIR)\neon-$(NEONVER)
 HTTPDDIR=$(SOURCESDIR)\httpd-$(HTTPDVER)
 #APRDIR=$(SOURCESDIR)\apr
 #APRUTILDIR=$(SOURCESDIR)\apr-util
@@ -50,7 +49,7 @@ APRUTILDIR=$(HTTPDDIR)\srclib\apr-util
 APRICONVDIR=$(HTTPDDIR)\srclib\apr-iconv
 SQLITEDIR=$(SOURCESDIR)\sqlite-amalgamation
 ZLIBDIR=$(SOURCESDIR)\zlib-$(ZLIBVER)
-SERFDIR=$(SOURCESDIR)\serf
+SERFDIR=$(SOURCESDIR)\serf-$(SERFVER)
 
 all:
 	@echo Available targets: newfiles versionstamp
@@ -101,10 +100,10 @@ targetdir: TARGETDIRset
 
 # TODO: pass --with-apr-* if you don't have httpd; make --with-* args optional
 config: targetdir
-	python gen-make.py --$(CONFIG) --with-httpd=$(HTTPDDIR) --with-neon=$(NEONDIR) --with-serf=$(SERFDIR) --with-openssl=$(OPENSSLDIR) --with-sqlite=$(SQLITEDIR) --with-zlib=$(ZLIBDIR) $(ENABLE_ML) --vsnet-version=2008 -t vcproj 2>&1 | tee log.gen-make
+	python gen-make.py --$(CONFIG) --with-httpd=$(HTTPDDIR) --with-serf=$(SERFDIR) --with-openssl=$(OPENSSLDIR) --with-sqlite=$(SQLITEDIR) --with-zlib=$(ZLIBDIR) $(ENABLE_ML) --vsnet-version=2008 -t vcproj 2>&1 | tee log.gen-make
 
 # Visual Studio 2008
-libsvn_auth_gnome_keyring libsvn_auth_kwallet libsvn_client libsvn_delta libsvn_diff libsvn_fs libsvn_fs_base libsvn_fs_fs libsvn_fs_util libsvn_ra libsvn_ra_local libsvn_ra_neon libsvn_ra_serf libsvn_ra_svn libsvn_repos libsvn_subr libsvn_wc: targetdir
+libsvn_auth_gnome_keyring libsvn_auth_kwallet libsvn_client libsvn_delta libsvn_diff libsvn_fs libsvn_fs_base libsvn_fs_fs libsvn_fs_util libsvn_ra libsvn_ra_local libsvn_ra_serf libsvn_ra_svn libsvn_repos libsvn_subr libsvn_wc: targetdir
 	$(MSBUILD) /t:Libraries\$@
 	$(MAKE) package
 svn svnadmin svndumpfilter svnlook svnmucc svnserve svnsync svnversion svnrdump entries-dump: targetdir
@@ -128,7 +127,7 @@ all2: targetdir
 package:
 	test -d $(SVNDIR)\$(CONFIG)\Subversion\tests\cmdline || mkdir $(SVNDIR)\$(CONFIG)\Subversion\tests\cmdline
 	test -d $(TARGETDIR)\bin || mkdir $(TARGETDIR)\bin
-	for %%i in (svn svnadmin svndumpfilter svnlook svnserve svnsync svnversion svnrdump) do @$(CP) $(CONFIG)\subversion\%%i\%%i.exe $(TARGETDIR)\bin
+	for %%i in (svn svnadmin svndumpfilter svnlook svnserve svnsync svnversion svnrdump svnmucc) do @$(CP) $(CONFIG)\subversion\%%i\%%i.exe $(TARGETDIR)\bin
 	for %%i in (diff diff3 diff4) do @if exist $(CONFIG)\tools\diff\%%i.exe $(CP) $(CONFIG)\tools\diff\%%i.exe $(TARGETDIR)\bin
 	$(CP) $(APRDIR)\$(CONFIG)/*.dll $(TARGETDIR)\bin
 	$(CP) $(APRUTILDIR)\$(CONFIG)/*.dll $(TARGETDIR)\bin

Modified: subversion/branches/master-passphrase/tools/dist/nightly.sh
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/dist/nightly.sh?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/dist/nightly.sh (original)
+++ subversion/branches/master-passphrase/tools/dist/nightly.sh Wed Jun 27 15:12:37 2012
@@ -63,7 +63,7 @@ $svn export -r $head $repo/trunk/build/g
 # Create the environment
 cd roll
 echo '----------------building environment------------------'
-../release.py --base-dir ${abscwd}/roll build-env
+../release.py --base-dir ${abscwd}/roll build-env trunk-nightly
 
 # Roll the tarballs
 echo '-------------------rolling tarball--------------------'
@@ -72,8 +72,8 @@ cd ..
 
 # Create the information page
 echo '-------------------moving results---------------------'
-./release.py --base-dir ${abscwd}/roll post-candidates trunk-nightly $head \
-    --target $target
+# ./release.py --base-dir ${abscwd}/roll post-candidates trunk-nightly $head \
+#     --target $target
 if [ ! -d "$target/dist" ]; then mkdir "$target/dist"; fi
 if [ -d "$target/dist/r$head" ]; then rm -r "$target/dist/r$head"; fi
 mv roll/deploy $target/dist/r$head

Modified: subversion/branches/master-passphrase/tools/dist/release.py
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/dist/release.py?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/dist/release.py (original)
+++ subversion/branches/master-passphrase/tools/dist/release.py Wed Jun 27 15:12:37 2012
@@ -84,6 +84,7 @@ tool_versions = {
 
 # Some constants
 repos = 'http://svn.apache.org/repos/asf/subversion'
+secure_repos = 'https://svn.apache.org/repos/asf/subversion'
 dist_repos = 'https://dist.apache.org/repos/dist'
 dist_dev_url = dist_repos + '/dev/subversion'
 dist_release_url = dist_repos + '/release/subversion'
@@ -416,14 +417,15 @@ def roll_tarballs(args):
             extra_args = '-nightly'
         else:
             extra_args = '-%s %d' % (args.version.pre, args.version.pre_num)
-    logging.info('Building UNIX tarballs')
-    run_script(args.verbose, '%s/dist.sh -v %s -pr %s -r %d %s'
-                     % (sys.path[0], args.version.base, branch, args.revnum,
-                        extra_args) )
+    # Build Unix last to leave Unix-style svn_version.h for tagging
     logging.info('Buildling Windows tarballs')
     run_script(args.verbose, '%s/dist.sh -v %s -pr %s -r %d -zip %s'
                      % (sys.path[0], args.version.base, branch, args.revnum,
                         extra_args) )
+    logging.info('Building UNIX tarballs')
+    run_script(args.verbose, '%s/dist.sh -v %s -pr %s -r %d %s'
+                     % (sys.path[0], args.version.base, branch, args.revnum,
+                        extra_args) )
 
     # Move the results to the deploy directory
     logging.info('Moving artifacts and calculating checksums')
@@ -478,14 +480,47 @@ def post_candidates(args):
     'Post candidate artifacts to the dist development directory.'
 
     logging.info('Importing tarballs to %s' % dist_dev_url)
-    proc = subprocess.Popen(['svn', 'import', '-m',
-                             'Add %s candidate release artifacts' 
-                               % args.version.base,
-                            get_deploydir(args.base_dir), dist_dev_url])
+    svn_cmd = ['svn', 'import', '-m',
+               'Add %s candidate release artifacts' % args.version.base,
+               '--auto-props', '--config-option',
+               'config:auto-props:*.asc=svn:eol-style=native;svn:mime-type=text/plain',
+               get_deploydir(args.base_dir), dist_dev_url]
+    if (args.username):
+        svn_cmd += ['--username', args.username]
+    proc = subprocess.Popen(svn_cmd)
     (stdout, stderr) = proc.communicate()
     proc.wait()
 
 #----------------------------------------------------------------------
+# Create tag
+
+def create_tag(args):
+    'Create tag in the repository'
+
+    logging.info('Creating tag for %s' % str(args.version))
+
+    if args.branch:
+        branch = secure_repos + '/' + args.branch
+    else:
+        branch = secure_repos + '/branches/%d.%d.x' % (args.version.major,
+                                                       args.version.minor)
+
+    tag = secure_repos + '/tags/' + str(args.version)
+
+    svnmucc_cmd = ['svnmucc', '-m',
+                   'Tagging release ' + str(args.version)]
+    if (args.username):
+        svnmucc_cmd += ['--username', args.username]
+    svnmucc_cmd += ['cp', str(args.revnum), branch, tag]
+    svnmucc_cmd += ['put', os.path.join(get_deploydir(args.base_dir),
+                                        'svn_version.h.dist'),
+                    tag + '/subversion/include/svn_version.h']
+
+    # don't redirect stdout/stderr since svnmucc might ask for a password
+    proc = subprocess.Popen(svnmucc_cmd)
+    proc.wait()
+
+#----------------------------------------------------------------------
 # Clean dist
 
 def clean_dist(args):
@@ -512,6 +547,8 @@ def clean_dist(args):
     svnmucc_cmd = ['svnmucc', '-m', 'Remove old Subversion releases.\n' +
                    'They are still available at ' +
                    'http://archive.apache.org/dist/subversion/']
+    if (args.username):
+        svnmucc_cmd += ['--username', args.username]
     for k, g in itertools.groupby(sorted(versions),
                                   lambda x: (x.major, x.minor)):
         releases = list(g)
@@ -547,6 +584,8 @@ def move_to_dist(args):
         filenames.append(entry)
     svnmucc_cmd = ['svnmucc', '-m',
                    'Publish Subversion-%s.' % str(args.version)]
+    if (args.username):
+        svnmucc_cmd += ['--username', args.username]
     svnmucc_cmd += ['rm', dist_dev_url + '/' + 'svn_version.h.dist']
     for filename in filenames:
         svnmucc_cmd += ['mv', dist_dev_url + '/' + filename,
@@ -676,6 +715,8 @@ def check_sigs(args):
                 good_sigs[verified.key_id[-8:]] = True
             else:
                 sys.stderr.write("BAD SIGNATURE for %s\n" % filename)
+                if verified.key_id:
+                    sys.stderr.write("  key id: %s\n" % verified.key_id)
                 sys.exit(1)
 
     for id in good_sigs.keys():
@@ -758,6 +799,21 @@ def main():
     subparser.set_defaults(func=post_candidates)
     subparser.add_argument('version', type=Version,
                     help='''The release label, such as '1.7.0-alpha1'.''')
+    subparser.add_argument('--username',
+                    help='''Username for ''' + dist_repos + '''.''')
+
+    # Setup the parser for the create-tag subcommand
+    subparser = subparsers.add_parser('create-tag',
+                    help='''Create the release tag.''')
+    subparser.set_defaults(func=create_tag)
+    subparser.add_argument('version', type=Version,
+                    help='''The release label, such as '1.7.0-alpha1'.''')
+    subparser.add_argument('revnum', type=int,
+                    help='''The revision number to base the release on.''')
+    subparser.add_argument('--branch',
+                    help='''The branch to base the release on.''')
+    subparser.add_argument('--username',
+                    help='''Username for ''' + secure_repos + '''.''')
 
     # The clean-dist subcommand
     subparser = subparsers.add_parser('clean-dist',
@@ -766,6 +822,8 @@ def main():
     subparser.set_defaults(func=clean_dist)
     subparser.add_argument('--dist-dir',
                     help='''The directory to clean.''')
+    subparser.add_argument('--username',
+                    help='''Username for ''' + dist_repos + '''.''')
 
     # The move-to-dist subcommand
     subparser = subparsers.add_parser('move-to-dist',
@@ -775,6 +833,8 @@ def main():
     subparser.set_defaults(func=move_to_dist)
     subparser.add_argument('version', type=Version,
                     help='''The release label, such as '1.7.0-alpha1'.''')
+    subparser.add_argument('--username',
+                    help='''Username for ''' + dist_repos + '''.''')
 
     # The write-news subcommand
     subparser = subparsers.add_parser('write-news',

Modified: subversion/branches/master-passphrase/tools/server-side/svn-rep-sharing-stats.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/server-side/svn-rep-sharing-stats.c?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/server-side/svn-rep-sharing-stats.c (original)
+++ subversion/branches/master-passphrase/tools/server-side/svn-rep-sharing-stats.c Wed Jun 27 15:12:37 2012
@@ -421,7 +421,6 @@ int
 main(int argc, const char *argv[])
 {
   const char *repos_path;
-  apr_allocator_t *allocator;
   apr_pool_t *pool;
   svn_boolean_t prop = FALSE, data = FALSE;
   svn_boolean_t quiet = FALSE;
@@ -446,13 +445,7 @@ main(int argc, const char *argv[])
   /* Create our top-level pool.  Use a separate mutexless allocator,
    * given this application is single threaded.
    */
-  if (apr_allocator_create(&allocator))
-    return EXIT_FAILURE;
-
-  apr_allocator_max_free_set(allocator, SVN_ALLOCATOR_RECOMMENDED_MAX_FREE);
-
-  pool = svn_pool_create_ex(NULL, allocator);
-  apr_allocator_owner_set(allocator, pool);
+  pool = apr_allocator_owner_get(svn_pool_create_allocator(FALSE));
 
   /* Check library versions */
   err = check_lib_versions();

Modified: subversion/branches/master-passphrase/tools/server-side/svnauthz-validate.c
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/server-side/svnauthz-validate.c?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/server-side/svnauthz-validate.c (original)
+++ subversion/branches/master-passphrase/tools/server-side/svnauthz-validate.c Wed Jun 27 15:12:37 2012
@@ -94,6 +94,7 @@ main(int argc, const char **argv)
   if (err)
     {
       svn_handle_error2(err, stderr, FALSE, "svnauthz-validate: ");
+      svn_error_clear(err);
       return 1;
     }
   else

Propchange: subversion/branches/master-passphrase/tools/server-side/svnpredumpfilter.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/master-passphrase/tools/server-side/svnpubsub/commit-hook.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/master-passphrase/tools/server-side/svnpubsub/daemonize.py
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/master-passphrase/tools/server-side/svnpubsub/example.conf
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/server-side/svnpubsub/example.conf?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/server-side/svnpubsub/example.conf (original)
+++ subversion/branches/master-passphrase/tools/server-side/svnpubsub/example.conf Wed Jun 27 15:12:37 2012
@@ -2,115 +2,16 @@
 
 [DEFAULT]
 svnbin: /usr/local/bin/svn
-streams: http://svn-master.apache.org:2069/commits/xml
-         http://dist.apache.org:2069/commits/xml
+streams: http://svn.example.org:2069/commits/xml
 
-ASF: http://svn-master.apache.org/repos/asf
-INFRA: https://svn-master.apache.org/repos/infra
-CMS: %(INFRA)s/websites/production
-DIST: https://dist.apache.org/repos/dist
+## The values below are used by ConfigParser's interpolation syntax.
+## See http://docs.python.org/library/configparser
+SOME_REPOS: svn://svn.example.org/repos/chaos
 
 [env]
-HOME: /home/svnwc
+HOME: /home/svn
 LANG: en_US.UTF-8
 
 [track]
-/x1/www/apr.apache.org: %(ASF)s/apr/site/trunk/docs
-/x1/www/apr.apache.org/dev/dist: %(DIST)s/dev/apr
-/x1/www/www.apache.org/dist/apr: %(DIST)s/release/apr
-/x1/www/www.apache.org/dist/poi: %(DIST)s/release/poi
-/x1/www/www.apache.org/dist/pivot: %(DIST)s/release/pivot
-/x1/www/www.apache.org/dist/httpd: %(DIST)s/release/httpd
-/x1/www/www.apache.org/dist/incubator/airavata: %(DIST)s/release/incubator/airavata
-/x1/www/www.apache.org/: %(CMS)s/www
-/x1/www/httpd.apache.org/: %(ASF)s/httpd/site/trunk/docs
-/x1/www/httpd.apache.org/docs/2.0: %(ASF)s/httpd/httpd/branches/2.0.x/docs/manual
-/x1/www/httpd.apache.org/docs/2.2: %(ASF)s/httpd/httpd/branches/2.2.x/docs/manual
-/x1/www/httpd.apache.org/docs/1.3: %(ASF)s/httpd/httpd/branches/1.3.x/htdocs/manual
-/x1/www/httpd.apache.org/docs/2.4: %(ASF)s/httpd/httpd/branches/2.4.x/docs/manual
-/x1/www/httpd.apache.org/docs/trunk: %(ASF)s/httpd/httpd/trunk/docs/manual
-/x1/www/httpd.apache.org/mod_fcgid/mod: %(ASF)s/httpd/mod_fcgid/trunk/docs/manual/mod
-/x1/www/httpd.apache.org/mod_fcgid/style: %(ASF)s/httpd/httpd/trunk/docs/manual/style
-/x1/www/httpd.apache.org/mod_fcgid/images: %(ASF)s/httpd/httpd/trunk/docs/manual/images
-/x1/www/httpd.apache.org/dev/dist: %(DIST)s/dev/httpd
-/x1/www/httpd.apache.org/mod_ftp/mod: %(ASF)s/httpd/mod_ftp/trunk/docs/manual/mod
-/x1/www/httpd.apache.org/mod_ftp/style: %(ASF)s/httpd/httpd/trunk/docs/manual/style
-/x1/www/httpd.apache.org/mod_ftp/images: %(ASF)s/httpd/httpd/trunk/docs/manual/images
-/x1/www/httpd.apache.org/mod_ftp/ftp: %(ASF)s/httpd/mod_ftp/trunk/docs/manual/ftp
-/x1/www/libcloud.apache.org: %(CMS)s/libcloud
-/x1/www/river.apache.org: %(CMS)s/river/content
-/x1/www/incubator.apache.org/stanbol: %(CMS)s/stanbol/content/stanbol
-/x1/www/incubator.apache.org/kitty: %(CMS)s/kitty/content/kitty
-/x1/www/www.apache.org/dist/trafficserver: %(DIST)s/release/trafficserver
-/x1/staging/harmony.apache.org/eclipse/update: %(ASF)s/harmony/enhanced/tools/trunk/eclipse/org.apache.harmony.eclipse.site
-/x1/staging/harmony.apache.org/externals/security: %(ASF)s/harmony/enhanced/java/trunk/classlib/doc/security
-/x1/staging/harmony.apache.org/externals/regex: %(ASF)s/harmony/enhanced/java/trunk/classlib/doc/regex
-/x1/staging/harmony.apache.org: %(ASF)s/harmony/standard/site/trunk/docs
-/x1/www/harmony.apache.org/eclipse/update: %(ASF)s/harmony/enhanced/tools/trunk/eclipse/org.apache.harmony.eclipse.site
-/x1/www/harmony.apache.org/externals/security: %(ASF)s/harmony/enhanced/java/trunk/classlib/doc/security
-/x1/www/harmony.apache.org/externals/regex: %(ASF)s/harmony/enhanced/java/trunk/classlib/doc/regex
-/x1/www/harmony.apache.org: %(ASF)s/harmony/standard/site/branches/live/docs
-/x1/www/subversion.apache.org/: %(ASF)s/subversion/site
-/x1/www/trafficserver.apache.org/: %(CMS)s/trafficserver
-/x1/www/qpid.apache.org: %(ASF)s/qpid/site/docs
-/x1/www/pdfbox.apache.org: %(ASF)s/pdfbox/site/publish
-/x1/www/cassandra.apache.org: %(ASF)s/cassandra/site/publish
-/x1/www/community.apache.org: %(CMS)s/community
-/x1/www/nutch.apache.org: %(ASF)s/nutch/site/publish
-/x1/www/wicket.apache.org: %(ASF)s/wicket/common/site/trunk/_site
-/x1/www/wicket.apache.org/apidocs: %(ASF)s/wicket/common/site/apidocs
-/x1/www/incubator.apache.org/callback: %(CMS)s/callback/content/callback
-/x1/www/incubator.apache.org/zetacomponents: %(ASF)s/incubator/zetacomponents/website/htdocs
-/x1/www/incubator.apache.org/flex: %(CMS)s/flex/content/flex
-/x1/www/incubator.apache.org/jena: %(CMS)s/jena/content/jena
-/x1/www/incubator.apache.org/celix: %(CMS)s/celix/content/celix
-/x1/www/incubator.apache.org/lucene.net: %(CMS)s/lucene.net/content/lucene.net
-/x1/www/incubator.apache.org/easyant: %(ASF)s/incubator/easyant/site/production
-/x1/www/incubator.apache.org/etch: %(CMS)s/etch/content/etch
-/x1/www/incubator.apache.org/rave: %(CMS)s/rave/content/rave
-/x1/www/incubator.apache.org/wave: %(CMS)s/wave/content/wave
-/x1/www/incubator.apache.org/lucy: %(CMS)s/lucy/content/lucy
-/x1/www/incubator.apache.org/openmeetings: %(ASF)s/incubator/openmeetings/trunk/singlewebapp/docs
-/x1/www/incubator.apache.org/openofficeorg: %(CMS)s/openofficeorg/content/openofficeorg
-/x1/www/incubator.apache.org/odftoolkit: %(CMS)s/odftoolkit/content/odftoolkit
-/x1/www/incubator.apache.org/airavata: %(CMS)s/airavata/content/airavata
-/x1/www/incubator.apache.org/wookie: %(CMS)s/wookie/content/wookie
-/x1/www/incubator.apache.org/accumulo: %(CMS)s/accumulo/content/accumulo
-/x1/www/gora.apache.org: %(ASF)s/gora/site/publish
-/x1/www/incubator.apache.org/devicemap: %(CMS)s/devicemap/content/devicemap
-/x1/www/aries.apache.org: %(CMS)s/aries/content
-/x1/www/tika.apache.org: %(ASF)s/tika/site/publish
-/x1/www/uima.apache.org/pubsub: %(ASF)s/uima/site/trunk/uima-website/docs
-/x1/www/zookeeper.apache.org: %(CMS)s/zookeeper
-/x1/www/chemistry.apache.org: %(CMS)s/chemistry
-/x1/www/ant.apache.org: %(ASF)s/ant/site/ant/production
-/x1/www/ant.apache.org/ivy: %(ASF)s/ant/site/ivy/production
-/x1/www/ant.apache.org/ivy/ivyde: %(ASF)s/ant/site/ivyde/production
-/x1/www/www.apache.org/dist/esme: %(DIST)s/release/esme
-/x1/www/www.apache.org/dist/libcloud: %(DIST)s/release/libcloud
-/x1/www/archive.apachecon.com: %(INFRA)s/apachecon/archive.apachecon.com
-/x1/www/oodt.apache.org: %(ASF)s/oodt/site
-/x1/www/esme.apache.org: %(CMS)s/esme/content
-/x1/www/ooo-site.apache.org: %(CMS)s/ooo-site
-/x1/www/openejb.apache.org: %(CMS)s/openejb
-/x1/www/deltacloud.apache.org: %(ASF)s/deltacloud/trunk/site/output
-/x1/www/ace.apache.org: %(CMS)s/ace
-/x1/www/stdcxx.apache.org/doc: %(ASF)s/stdcxx/trunk/doc
-/x1/www/stdcxx.apache.org: %(ASF)s/stdcxx/site
-/x1/www/www.apache.org/dist/tomcat: %(DIST)s/release/tomcat
-/x1/www/incubator.apache.org/any23: %(ASF)s/incubator/any23/site
-/x1/www/incubator.apache.org/bloodhound: %(ASF)s/incubator/bloodhound/site
-/x1/www/labs.apache.org/: %(CMS)s/labs
-/x1/www/lucene.apache.org: %(CMS)s/lucene
-/x1/www/lucene.apache.org/content/core/old_versioned_docs: %(ASF)s/lucene/old_versioned_docs
-/x1/www/pivot.apache.org: %(ASF)s/pivot/site/trunk/deploy
-/x1/www/www.apache.org/dist/empire-db: %(DIST)s/release/empire-db
-/x1/www/empire-db.apache.org: %(ASF)s/empire-db/site
-/x1/www/www.apache.org/dist/subversion: %(DIST)s/release/subversion
-/x1/www/avro.apache.org: %(ASF)s/avro/site/publish
-/x1/www/incubator.apache.org/cordova: %(ASF)s/incubator/cordova/site/public
-/x1/www/mahout.apache.org: %(ASF)s/mahout/site/new_website
-/x1/www/opennlp.apache.org: %(CMS)s/opennlp
-/x1/www/gump.apache.org: %(ASF)s/gump/site
-/x1/www/incubator.apache.org/syncope: %(ASF)s/incubator/syncope/site
-/x1/staging/www.apache.org: %(ASF)s/infrastructure/site/branches/flamebait/docs
+/usr/local/foo/prod: %(SOME_REPOS)/foo/production
+/usr/local/foo/dev:  %(SOME_REPOS)/foo/trunk

Propchange: subversion/branches/master-passphrase/tools/server-side/svnpubsub/svnpubsub/__init__.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/master-passphrase/tools/server-side/svnpubsub/svnpubsub/client.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/master-passphrase/tools/server-side/svnpubsub/svnpubsub/server.py
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/master-passphrase/tools/server-side/svnpubsub/svntweet.py
URL: http://svn.apache.org/viewvc/subversion/branches/master-passphrase/tools/server-side/svnpubsub/svntweet.py?rev=1354571&r1=1354570&r2=1354571&view=diff
==============================================================================
--- subversion/branches/master-passphrase/tools/server-side/svnpubsub/svntweet.py (original)
+++ subversion/branches/master-passphrase/tools/server-side/svnpubsub/svntweet.py Wed Jun 27 15:12:37 2012
@@ -23,7 +23,7 @@
 #  svntweet.py  my-config.json
 #
 # With my-config.json containing stream paths and the twitter auth info:
-#    {"stream": "http://svn-master.apache.org:2069/commits/xml",
+#    {"stream": "http://svn.apache.org:2069/commits/xml",
 #     "username": "asfcommits",
 #     "password": "MyLuggageComboIs1234"}
 #

Propchange: subversion/branches/master-passphrase/tools/server-side/svnpubsub/svntweet.py
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message