Modified: 
subversion/branches/compressed-pristines/subversion/svndumpfilter/main.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/svndumpfilter/main.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/svndumpfilter/main.c 
(original)
+++ subversion/branches/compressed-pristines/subversion/svndumpfilter/main.c 
Sat Apr 14 12:37:25 2012
@@ -1262,7 +1262,6 @@ main(int argc, const char *argv[])
 {
   svn_error_t *err;
   apr_status_t apr_err;
-  apr_allocator_t *allocator;
   apr_pool_t *pool;
 
   const svn_opt_subcommand_desc2_t *subcommand = NULL;
@@ -1280,13 +1279,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/compressed-pristines/subversion/svnlook/main.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/svnlook/main.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/svnlook/main.c 
(original)
+++ subversion/branches/compressed-pristines/subversion/svnlook/main.c Sat Apr 
14 12:37:25 2012
@@ -2251,7 +2251,6 @@ main(int argc, const char *argv[])
 {
   svn_error_t *err;
   apr_status_t apr_err;
-  apr_allocator_t *allocator;
   apr_pool_t *pool;
 
   const svn_opt_subcommand_desc2_t *subcommand = NULL;
@@ -2268,13 +2267,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));
 
   received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
 

Modified: 
subversion/branches/compressed-pristines/subversion/svnrdump/dump_editor.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/svnrdump/dump_editor.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/svnrdump/dump_editor.c 
(original)
+++ subversion/branches/compressed-pristines/subversion/svnrdump/dump_editor.c 
Sat Apr 14 12:37:25 2012
@@ -1063,7 +1063,7 @@ svn_rdump__get_dump_editor(const svn_del
   shim_callbacks->fetch_baton = eb;
 
   SVN_ERR(svn_editor__insert_shims(editor, edit_baton, *editor, *edit_baton,
-                                   shim_callbacks, pool, pool));
+                                   NULL, NULL, shim_callbacks, pool, pool));
 
   return SVN_NO_ERROR;
 }

Modified: 
subversion/branches/compressed-pristines/subversion/svnrdump/svnrdump.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/svnrdump/svnrdump.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/svnrdump/svnrdump.c 
(original)
+++ subversion/branches/compressed-pristines/subversion/svnrdump/svnrdump.c Sat 
Apr 14 12:37:25 2012
@@ -694,7 +694,6 @@ main(int argc, const char **argv)
   apr_getopt_t *os;
   const char *first_arg;
   apr_array_header_t *received_opts;
-  apr_allocator_t *allocator;
   int i;
 
   if (svn_cmdline_init ("svnrdump", stderr) != EXIT_SUCCESS)
@@ -703,13 +702,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));
 
   opt_baton = apr_pcalloc(pool, sizeof(*opt_baton));
   opt_baton->start_revision.kind = svn_opt_revision_unspecified;

Modified: subversion/branches/compressed-pristines/subversion/svnserve/main.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/svnserve/main.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/svnserve/main.c 
(original)
+++ subversion/branches/compressed-pristines/subversion/svnserve/main.c Sat Apr 
14 12:37:25 2012
@@ -413,7 +413,6 @@ int main(int argc, const char *argv[])
   apr_sockaddr_t *sa;
   apr_pool_t *pool;
   apr_pool_t *connection_pool;
-  apr_allocator_t *allocator;
   svn_error_t *err;
   apr_getopt_t *os;
   int opt;
@@ -928,22 +927,12 @@ int main(int argc, const char *argv[])
         return ERROR_SUCCESS;
 #endif
 
-      /* If we are using fulltext caches etc. we will allocate many large
-         chunks of memory of various sizes outside the cache for those
-         fulltexts. Make sure we use the memory wisely: use an allocator
-         that causes memory fragments to be given back to the OS early. */
-
-      if (apr_allocator_create(&allocator))
-        return EXIT_FAILURE;
-
-      apr_allocator_max_free_set(allocator, 
SVN_ALLOCATOR_RECOMMENDED_MAX_FREE);
-
       /* Non-standard pool handling.  The main thread never blocks to join
          the connection threads so it cannot clean up after each one.  So
          separate pools that can be cleared at thread exit are used. */
 
-      connection_pool = svn_pool_create_ex(NULL, allocator);
-      apr_allocator_owner_set(allocator, connection_pool);
+      connection_pool
+          = apr_allocator_owner_get(svn_pool_create_allocator(FALSE));
 
       status = apr_socket_accept(&usock, sock, connection_pool);
       if (handling_mode == connection_mode_fork)

Modified: subversion/branches/compressed-pristines/subversion/svnsync/main.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/svnsync/main.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/svnsync/main.c 
(original)
+++ subversion/branches/compressed-pristines/subversion/svnsync/main.c Sat Apr 
14 12:37:25 2012
@@ -1888,7 +1888,6 @@ main(int argc, const char *argv[])
   const char *password = NULL, *source_password = NULL, *sync_password = NULL;
   apr_array_header_t *config_options = NULL;
   const char *source_prop_encoding = NULL;
-  apr_allocator_t *allocator;
 
   if (svn_cmdline_init("svnsync", stderr) != EXIT_SUCCESS)
     {
@@ -1902,13 +1901,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));
 
   err = svn_ra_initialize(pool);
   if (err)

Modified: subversion/branches/compressed-pristines/subversion/svnversion/main.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/svnversion/main.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/svnversion/main.c 
(original)
+++ subversion/branches/compressed-pristines/subversion/svnversion/main.c Sat 
Apr 14 12:37:25 2012
@@ -122,7 +122,6 @@ main(int argc, const char *argv[])
 {
   const char *wc_path, *trail_url;
   const char *local_abspath;
-  apr_allocator_t *allocator;
   apr_pool_t *pool;
   svn_wc_revision_status_t *res;
   svn_boolean_t no_newline = FALSE, committed = FALSE;
@@ -150,13 +149,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/compressed-pristines/subversion/tests/cmdline/diff_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/cmdline/diff_tests.py?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/cmdline/diff_tests.py 
(original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/cmdline/diff_tests.py 
Sat Apr 14 12:37:25 2012
@@ -47,16 +47,28 @@ Item = svntest.wc.StateItem
 ######################################################################
 # Generate expected output
 
-def make_diff_header(path, old_tag, new_tag):
+def make_diff_header(path, old_tag, new_tag, src_label=None, dst_label=None):
   """Generate the expected diff header for file PATH, with its old and new
-  versions described in parentheses by OLD_TAG and NEW_TAG. Return the header
-  as an array of newline-terminated strings."""
+  versions described in parentheses by OLD_TAG and NEW_TAG. SRC_LABEL and
+  DST_LABEL are paths or urls that are added to the diff labels if we're
+  diffing against the repository or diffing two arbitrary paths.
+  Return the header as an array of newline-terminated strings."""
+  if src_label:
+    src_label = src_label.replace('\\', '/')
+    src_label = '\t(.../' + src_label + ')'
+  else:
+    src_label = ''
+  if dst_label:
+    dst_label = dst_label.replace('\\', '/')
+    dst_label = '\t(.../' + dst_label + ')'
+  else:
+    dst_label = ''
   path_as_shown = path.replace('\\', '/')
   return [
     "Index: " + path_as_shown + "\n",
     "===================================================================\n",
-    "--- " + path_as_shown + "\t(" + old_tag + ")\n",
-    "+++ " + path_as_shown + "\t(" + new_tag + ")\n",
+    "--- " + path_as_shown + src_label + "\t(" + old_tag + ")\n",
+    "+++ " + path_as_shown + dst_label + "\t(" + new_tag + ")\n",
     ]
 
 def make_no_diff_deleted_header(path, old_tag, new_tag):
@@ -1770,6 +1782,7 @@ def diff_prop_on_named_dir(sbox):
 
   svntest.actions.run_and_verify_svn(None, None, [],
                                      'propdel', 'p', 'A')
+
   svntest.actions.run_and_verify_svn(None, None, [],
                                      'ci', '-m', '')
 
@@ -3762,6 +3775,108 @@ def no_spurious_conflict(sbox):
   expected_status.tweak('3449_spurious', status='  ')
   svntest.actions.run_and_verify_status(wc_dir, expected_status)
 
+def diff_two_working_copies(sbox):
+  "diff between two working copies"
+  sbox.build()
+  wc_dir = sbox.wc_dir
+
+  # Create a pristine working copy that will remain mostly unchanged
+  wc_dir_old = sbox.add_wc_path('old')
+  svntest.main.run_svn(None, 'co', sbox.repo_url, wc_dir_old)
+  # Add a property to A/B/F in the pristine working copy
+  svntest.main.run_svn(None, 'propset', 'newprop', 'propval-old\n',
+                       os.path.join(wc_dir_old, 'A', 'B', 'F'))
+
+  # Make changes to the first working copy:
+
+  # removed nodes
+  sbox.simple_rm('A/mu')
+  sbox.simple_rm('A/D/H')
+
+  # new nodes
+  sbox.simple_mkdir('newdir')
+  svntest.main.file_append(sbox.ospath('newdir/newfile'), 'new text\n')
+  sbox.simple_add('newdir/newfile')
+  sbox.simple_mkdir('newdir/newdir2') # should not show up in the diff
+
+  # modified nodes
+  sbox.simple_propset('newprop', 'propval', 'A/D')
+  sbox.simple_propset('newprop', 'propval', 'A/D/gamma')
+  svntest.main.file_append(sbox.ospath('A/B/lambda'), 'new text\n')
+
+  # replaced nodes (files vs. directories) with property mods
+  sbox.simple_rm('A/B/F')
+  svntest.main.file_append(sbox.ospath('A/B/F'), 'new text\n')
+  sbox.simple_add('A/B/F')
+  sbox.simple_propset('newprop', 'propval-new\n', 'A/B/F')
+  sbox.simple_rm('A/D/G/pi')
+  sbox.simple_mkdir('A/D/G/pi')
+  sbox.simple_propset('newprop', 'propval', 'A/D/G/pi')
+
+  src_label = os.path.basename(wc_dir_old)
+  dst_label = os.path.basename(wc_dir)
+  expected_output = make_diff_header('newdir/newfile', 'working copy',
+                                     'working copy',
+                                     src_label, dst_label) + [
+                      "@@ -0,0 +1 @@\n",
+                      "+new text\n",
+                    ] + make_diff_header('A/mu', 'working copy',
+                                         'working copy',
+                                         src_label, dst_label) + [
+                      "@@ -1 +0,0 @@\n",
+                      "-This is the file 'mu'.\n",
+                    ] + make_diff_header('A/B/F', 'working copy',
+                                         'working copy',
+                                         src_label, dst_label) + [
+                      "@@ -0,0 +1 @@\n",
+                      "+new text\n",
+                    ] + make_diff_prop_header('A/B/F') + \
+                        make_diff_prop_modified("newprop", "propval-old\n",
+                                                "propval-new\n") + \
+                    make_diff_header('A/B/lambda', 'working copy',
+                                         'working copy',
+                                         src_label, dst_label) + [
+                      "@@ -1 +1,2 @@\n",
+                      " This is the file 'lambda'.\n",
+                      "+new text\n",
+                    ] + make_diff_header('A/D', 'working copy', 'working copy',
+                                         src_label, dst_label) + \
+                        make_diff_prop_header('A/D') + \
+                        make_diff_prop_added("newprop", "propval") + \
+                    make_diff_header('A/D/gamma', 'working copy',
+                                         'working copy',
+                                         src_label, dst_label) + \
+                        make_diff_prop_header('A/D/gamma') + \
+                        make_diff_prop_added("newprop", "propval") + \
+                    make_diff_header('A/D/G/pi', 'working copy',
+                                         'working copy',
+                                         src_label, dst_label) + [
+                      "@@ -1 +0,0 @@\n",
+                      "-This is the file 'pi'.\n",
+                    ] + make_diff_prop_header('A/D/G/pi') + \
+                        make_diff_prop_added("newprop", "propval") + \
+                    make_diff_header('A/D/H/chi', 'working copy',
+                                         'working copy',
+                                         src_label, dst_label) + [
+                      "@@ -1 +0,0 @@\n",
+                      "-This is the file 'chi'.\n",
+                    ] + make_diff_header('A/D/H/omega', 'working copy',
+                                         'working copy',
+                                         src_label, dst_label) + [
+                      "@@ -1 +0,0 @@\n",
+                      "-This is the file 'omega'.\n",
+                    ] + make_diff_header('A/D/H/psi', 'working copy',
+                                         'working copy',
+                                         src_label, dst_label) + [
+                      "@@ -1 +0,0 @@\n",
+                      "-This is the file 'psi'.\n",
+                    ]
+                    
+  # Files in diff may be in any order.
+  expected_output = svntest.verify.UnorderedOutput(expected_output)
+  svntest.actions.run_and_verify_svn(None, expected_output, [],
+                                     'diff', '--old', wc_dir_old,
+                                     '--new', wc_dir)
 
 ########################################################################
 #Run the tests
@@ -3830,6 +3945,7 @@ test_list = [ None,
               diff_abs_localpath_from_wc_folder,
               no_spurious_conflict,
               diff_correct_wc_base_revnum,
+              diff_two_working_copies,
               ]
 
 if __name__ == '__main__':

Modified: 
subversion/branches/compressed-pristines/subversion/tests/cmdline/stat_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/cmdline/stat_tests.py?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/cmdline/stat_tests.py 
(original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/cmdline/stat_tests.py 
Sat Apr 14 12:37:25 2012
@@ -29,6 +29,9 @@ import os
 import re
 import time
 import datetime
+import logging
+
+logger = logging.getLogger()
 
 # Our testing module
 import svntest
@@ -644,7 +647,7 @@ def get_last_changed_date(path):
   for line in out:
     if re.match("^Last Changed Date", line):
       return line
-  print("Didn't find Last Changed Date for " + path)
+  logger.warn("Didn't find Last Changed Date for %s", path)
   raise svntest.Failure
 
 # Helper for timestamp_behaviour test
@@ -655,7 +658,7 @@ def get_text_timestamp(path):
   for line in out:
     if re.match("^Text Last Updated", line):
       return line
-  print("Didn't find text-time for " + path)
+  logger.warn("Didn't find text-time for %s", path)
   raise svntest.Failure
 
 # Helper for timestamp_behaviour test
@@ -789,9 +792,9 @@ use-commit-times = yes
       or fmt[23:25] != iota_ts[23:25]):
     # NOTE: the two strings below won't *exactly* match (see just above),
     #   but the *numeric* portions of them should.
-    print("File timestamp on 'iota' does not match.")
-    print("  EXPECTED: %s" % iota_ts)
-    print("    ACTUAL: %s" % fmt)
+    logger.warn("File timestamp on 'iota' does not match.")
+    logger.warn("  EXPECTED: %s", iota_ts)
+    logger.warn("    ACTUAL: %s", fmt)
     raise svntest.Failure
 
 #----------------------------------------------------------------------
@@ -1750,18 +1753,19 @@ def status_with_tree_conflicts(sbox):
       # check if the path should be a victim
       m = re.search('tree-conflicted="true"', entry)
       if (m is None) and should_be_victim[path]:
-        print("ERROR: expected '%s' to be a tree conflict victim." % path)
-        print("ACTUAL STATUS OUTPUT:")
-        print(output_str)
+        logger.warn("ERROR: expected '%s' to be a tree conflict victim.", path)
+        logger.warn("ACTUAL STATUS OUTPUT:")
+        logger.warn(output_str)
         raise svntest.Failure
       if m and not should_be_victim[path]:
-        print("ERROR: did NOT expect '%s' to be a tree conflict victim." % 
path)
-        print("ACTUAL STATUS OUTPUT:")
-        print(output_str)
+        logger.warn("ERROR: did NOT expect '%s' to be a tree conflict victim.",
+                    path)
+        logger.warn("ACTUAL STATUS OUTPUT:")
+        logger.warn(output_str)
         raise svntest.Failure
 
   if real_entry_count != len(should_be_victim):
-    print("ERROR: 'status --xml' output is incomplete.")
+    logger.warn("ERROR: 'status --xml' output is incomplete.")
     raise svntest.Failure
 
 

Modified: 
subversion/branches/compressed-pristines/subversion/tests/cmdline/svnadmin_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/cmdline/svnadmin_tests.py?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/cmdline/svnadmin_tests.py
 (original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/cmdline/svnadmin_tests.py
 Sat Apr 14 12:37:25 2012
@@ -30,6 +30,9 @@ import re
 import shutil
 import sys
 import threading
+import logging
+
+logger = logging.getLogger()
 
 # Our testing module
 import svntest
@@ -458,7 +461,7 @@ def hotcopy_format(sbox):
                                                         sbox.repo_dir,
                                                         backup_dir)
   if errput:
-    print("Error: hotcopy failed")
+    logger.warn("Error: hotcopy failed")
     raise svntest.Failure
 
   # verify that the db/format files are the same
@@ -471,7 +474,7 @@ def hotcopy_format(sbox):
   fp2.close()
 
   if contents1 != contents2:
-    print("Error: db/format file contents do not match after hotcopy")
+    logger.warn("Error: db/format file contents do not match after hotcopy")
     raise svntest.Failure
 
 #----------------------------------------------------------------------
@@ -488,7 +491,7 @@ def setrevprop(sbox):
                                                         "--bypass-hooks",
                                                         iota_path)
   if errput:
-    print("Error: 'setlog' failed")
+    logger.warn("Error: 'setlog' failed")
     raise svntest.Failure
 
   # Verify that the revprop value matches what we set when retrieved
@@ -507,7 +510,7 @@ def setrevprop(sbox):
                                                         "-r0", "svn:author",
                                                         foo_path)
   if errput:
-    print("Error: 'setrevprop' failed")
+    logger.warn("Error: 'setrevprop' failed")
     raise svntest.Failure
 
   # Verify that the revprop value matches what we set when retrieved
@@ -860,7 +863,7 @@ def set_uuid(sbox):
     raise SVNUnexpectedStderr(errput)
   new_uuid = output[0].rstrip()
   if new_uuid == orig_uuid:
-    print("Error: new UUID matches the original one")
+    logger.warn("Error: new UUID matches the original one")
     raise svntest.Failure
 
   # Now, try setting the UUID back to the original value.
@@ -871,7 +874,7 @@ def set_uuid(sbox):
     raise SVNUnexpectedStderr(errput)
   new_uuid = output[0].rstrip()
   if new_uuid != orig_uuid:
-    print("Error: new UUID doesn't match the original one")
+    logger.warn("Error: new UUID doesn't match the original one")
     raise svntest.Failure
 
 #----------------------------------------------------------------------

Modified: 
subversion/branches/compressed-pristines/subversion/tests/cmdline/svnlook_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/cmdline/svnlook_tests.py?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/cmdline/svnlook_tests.py
 (original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/cmdline/svnlook_tests.py
 Sat Apr 14 12:37:25 2012
@@ -25,7 +25,9 @@
 ######################################################################
 
 # General modules
-import re, os
+import re, os, logging
+
+logger = logging.getLogger()
 
 # Our testing module
 import svntest
@@ -56,9 +58,9 @@ def run_svnlook(*varargs):
 
 def expect(tag, expected, got):
   if expected != got:
-    print("When testing: %s" % tag)
-    print("Expected: %s" % expected)
-    print("     Got: %s" % got)
+    logger.warn("When testing: %s", tag)
+    logger.warn("Expected: %s", expected)
+    logger.warn("     Got: %s", got)
     raise svntest.Failure
 
 
@@ -165,7 +167,7 @@ def test_misc(sbox):
   # We cannot rely on svn:author's presence. ra_svn doesn't set it.
   if not (proplist == [ 'svn:author', 'svn:date', 'svn:log' ]
       or proplist == [ 'svn:date', 'svn:log' ]):
-    print("Unexpected result from proplist: %s" % proplist)
+    logger.warn("Unexpected result from proplist: %s", proplist)
     raise svntest.Failure
 
   prop_name = 'foo:bar-baz-quux'
@@ -415,12 +417,12 @@ def tree_non_recursive(sbox):
   treelist = run_svnlook('tree', '--non-recursive', repo_dir)
   for entry in treelist:
     if not entry.rstrip() in expected_results_root:
-      print("Unexpected result from tree with --non-recursive:")
-      print("  entry            : %s" % entry.rstrip())
+      logger.warn("Unexpected result from tree with --non-recursive:")
+      logger.warn("  entry            : %s", entry.rstrip())
       raise svntest.Failure
   if len(treelist) != len(expected_results_root):
-    print("Expected %i output entries, found %i"
-          % (len(expected_results_root), len(treelist)))
+    logger.warn("Expected %i output entries, found %i",
+          len(expected_results_root), len(treelist))
     raise svntest.Failure
 
   # check the output of svnlook --non-recursive on a
@@ -428,12 +430,12 @@ def tree_non_recursive(sbox):
   treelist = run_svnlook('tree', '--non-recursive', repo_dir, '/A/B')
   for entry in treelist:
     if not entry.rstrip() in expected_results_deep:
-      print("Unexpected result from tree with --non-recursive:")
-      print("  entry            : %s" % entry.rstrip())
+      logger.warn("Unexpected result from tree with --non-recursive:")
+      logger.warn("  entry            : %s", entry.rstrip())
       raise svntest.Failure
   if len(treelist) != len(expected_results_deep):
-    print("Expected %i output entries, found %i"
-          % (len(expected_results_deep), len(treelist)))
+    logger.warn("Expected %i output entries, found %i",
+          len(expected_results_deep), len(treelist))
     raise svntest.Failure
 
 #----------------------------------------------------------------------

Modified: 
subversion/branches/compressed-pristines/subversion/tests/cmdline/trans_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/cmdline/trans_tests.py?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/cmdline/trans_tests.py
 (original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/cmdline/trans_tests.py
 Sat Apr 14 12:37:25 2012
@@ -25,7 +25,9 @@
 ######################################################################
 
 # General modules
-import os, re
+import os, re, logging
+
+logger = logging.getLogger()
 
 # Our testing module
 import svntest
@@ -92,13 +94,13 @@ def check_keywords(actual_kw, expected_k
   """A Helper function to compare two keyword lists"""
 
   if len(actual_kw) != len(expected_kw):
-    print("Keyword lists are different by size")
+    logger.warn("Keyword lists are different by size")
     raise svntest.Failure
 
   for i in range(0,len(actual_kw)):
     if actual_kw[i] != expected_kw[i]:
-      print('%s item %s, Expected: %s' % (name, i, expected_kw[i][:-1]))
-      print('%s item %s, Got:      %s' % (name, i, actual_kw[i][:-1]))
+      logger.warn('%s item %s, Expected: %s', name, i, expected_kw[i][:-1])
+      logger.warn('%s item %s, Got:      %s', name, i, actual_kw[i][:-1])
       raise svntest.Failure
 
 def setup_working_copy(wc_dir, value_len):
@@ -304,7 +306,7 @@ def keywords_from_birth(sbox):
   if not ((len(lines) == 1)
           and (re.match("\$URL: (http|https|file|svn|svn\\+ssh)://",
                         lines[0]))):
-    print("URL expansion failed for %s" % url_unexp_path)
+    logger.warn("URL expansion failed for %s", url_unexp_path)
     raise svntest.Failure
   fp.close()
 
@@ -314,7 +316,7 @@ def keywords_from_birth(sbox):
   if not ((len(lines) == 1)
           and (re.match("\$URL: (http|https|file|svn|svn\\+ssh)://",
                         lines[0]))):
-    print("URL expansion failed for %s" % url_exp_path)
+    logger.warn("URL expansion failed for %s", url_exp_path)
     raise svntest.Failure
   fp.close()
 
@@ -323,7 +325,7 @@ def keywords_from_birth(sbox):
   lines = fp.readlines()
   if not ((len(lines) == 1)
           and (re.match("\$Id: id_unexp", lines[0]))):
-    print("Id expansion failed for %s" % id_exp_path)
+    logger.warn("Id expansion failed for %s", id_exp_path)
     raise svntest.Failure
   fp.close()
 
@@ -332,7 +334,7 @@ def keywords_from_birth(sbox):
   lines = fp.readlines()
   if not ((len(lines) == 1)
           and (re.match("\$Id: id_exp", lines[0]))):
-    print("Id expansion failed for %s" % id_exp_path)
+    logger.warn("Id expansion failed for %s", id_exp_path)
     raise svntest.Failure
   fp.close()
 
@@ -342,7 +344,7 @@ def keywords_from_birth(sbox):
   if not ((len(lines) == 1)
           and (re.match("\$Header: (https?|file|svn|svn\\+ssh)://.* jrandom",
                         lines[0]))):
-    print("Header expansion failed for %s" % header_unexp_path)
+    logger.warn("Header expansion failed for %s", header_unexp_path)
     raise svntest.Failure
   fp.close()
 
@@ -352,7 +354,7 @@ def keywords_from_birth(sbox):
   if not ((len(lines) == 1)
           and (re.match("\$Header: (https?|file|svn|svn\\+ssh)://.* jrandom",
                         lines[0]))):
-    print("Header expansion failed for %s" % header_exp_path)
+    logger.warn("Header expansion failed for %s", header_exp_path)
     raise svntest.Failure
   fp.close()
 
@@ -401,7 +403,7 @@ def keywords_from_birth(sbox):
   lines = fp.readlines()
   if not ((len(lines) == 1)
           and (re.match("\$Id: .*id with space", lines[0]))):
-    print("Id expansion failed for %s" % id_with_space_path)
+    logger.warn("Id expansion failed for %s", id_with_space_path)
     raise svntest.Failure
   fp.close()
 
@@ -411,7 +413,7 @@ def keywords_from_birth(sbox):
   if not ((len(lines) == 1)
           and (re.match("\$Id: .*id_exp with_\$_sign [^$]* jrandom \$",
                         lines[0]))):
-    print("Id expansion failed for %s" % id_exp_with_dollar_path)
+    logger.warn("Id expansion failed for %s", id_exp_with_dollar_path)
 
     raise svntest.Failure
   fp.close()
@@ -627,7 +629,7 @@ def keyword_expanded_on_checkout(sbox):
   if not ((len(lines) == 1)
           and (re.match("\$URL: (http|https|file|svn|svn\\+ssh)://",
                         lines[0]))):
-    print("URL expansion failed for %s" % other_url_path)
+    logger.warn("URL expansion failed for %s", other_url_path)
     raise svntest.Failure
   fp.close()
 
@@ -764,7 +766,7 @@ def propset_commit_checkout_nocrash(sbox
 
   mu_other_contents = open(mu_other_path).read()
   if mu_other_contents != "This is the file 'mu'.\n$Rev: 3 $":
-    print("'%s' does not have the expected contents" % mu_other_path)
+    logger.warn("'%s' does not have the expected contents", mu_other_path)
     raise svntest.Failure
 
 
@@ -878,7 +880,7 @@ def props_only_file_update(sbox):
     temps.remove('prop-base')
     temps.remove('props')
   if temps:
-    print('Temporary files leftover: %s' % (', '.join(temps),))
+    logger.warn('Temporary files leftover: %s', (', '.join(temps),))
     raise svntest.Failure
 
 

Modified: 
subversion/branches/compressed-pristines/subversion/tests/cmdline/update_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/cmdline/update_tests.py?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/cmdline/update_tests.py
 (original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/cmdline/update_tests.py
 Sat Apr 14 12:37:25 2012
@@ -27,6 +27,9 @@
 # General modules
 import sys, re, os, subprocess
 import time
+import logging
+
+logger = logging.getLogger()
 
 # Our testing module
 import svntest
@@ -92,7 +95,7 @@ def detect_extra_files(node, extra_files
           extra_files.pop(extra_files.index(fdata)) # delete pattern from list
           return
 
-  print("Found unexpected object: %s" % node.name)
+  logger.warn("Found unexpected object: %s", node.name)
   raise svntest.tree.SVNTreeUnequal
 
 
@@ -197,8 +200,8 @@ def update_binary_file(sbox):
 
   # verify that the extra_files list is now empty.
   if len(extra_files) != 0:
-    print("Not all extra reject files have been accounted for:")
-    print(extra_files)
+    logger.warn("Not all extra reject files have been accounted for:")
+    logger.warn(extra_files)
     raise svntest.Failure
 
 #----------------------------------------------------------------------
@@ -695,7 +698,7 @@ def update_to_resolve_text_conflicts(sbo
 
   # verify that the extra_files list is now empty.
   if len(extra_files) != 0:
-    print("didn't get expected extra files")
+    logger.warn("didn't get expected extra files")
     raise svntest.Failure
 
   # remove the conflicting files to clear text conflict but not props conflict
@@ -708,7 +711,7 @@ def update_to_resolve_text_conflicts(sbo
   exit_code, stdout_lines, stdout_lines = svntest.main.run_svn(None, 'up',
                                                                wc_backup)
   if len (stdout_lines) > 0:
-    print("update 2 failed")
+    logger.warn("update 2 failed")
     raise svntest.Failure
 
   # Create expected status tree
@@ -5375,7 +5378,7 @@ def update_with_file_lock_and_keywords_p
   sbox.simple_update()
   mu_ts_after_update = os.path.getmtime(mu_path)
   if (mu_ts_before_update != mu_ts_after_update):
-    print("The timestamp of 'mu' before and after update does not match.")
+    logger.warn("The timestamp of 'mu' before and after update does not 
match.")
     raise svntest.Failure
 
 #----------------------------------------------------------------------

Modified: 
subversion/branches/compressed-pristines/subversion/tests/cmdline/upgrade_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/cmdline/upgrade_tests.py?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/cmdline/upgrade_tests.py
 (original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/cmdline/upgrade_tests.py
 Sat Apr 14 12:37:25 2012
@@ -35,6 +35,9 @@ import shutil
 import sys
 import tarfile
 import tempfile
+import logging
+
+logger = logging.getLogger()
 
 import svntest
 from svntest import wc
@@ -179,15 +182,15 @@ def simple_property_verify(dir_path, exp
           v2 = node2.get(prop, None)
 
           if not v2:
-            print('\'%s\' property on \'%s\' not found in %s' %
-                  (prop, key, name))
+            logger.warn('\'%s\' property on \'%s\' not found in %s',
+                  prop, key, name)
             equal = False
           if match and v1 != v2:
-            print('Expected \'%s\' on \'%s\' to be \'%s\', but found \'%s\'' %
-                  (prop, key, v1, v2))
+            logger.warn('Expected \'%s\' on \'%s\' to be \'%s\', but found 
\'%s\'',
+                  prop, key, v1, v2)
             equal = False
       else:
-        print('\'%s\': %s not found in %s' % (key, dict1[key], name))
+        logger.warn('\'%s\': %s not found in %s', key, dict1[key], name)
         equal = False
 
     return equal
@@ -214,7 +217,7 @@ def simple_property_verify(dir_path, exp
   v2 = diff_props(actual_props, expected_props, 'expected', False)
 
   if not v1 or not v2:
-    print('Actual properties: %s' % actual_props)
+    logger.warn('Actual properties: %s', actual_props)
     raise svntest.Failure("Properties unequal")
 
 def simple_checksum_verify(expected_checksums):
@@ -244,7 +247,7 @@ def run_and_verify_status_no_server(wc_d
   except svntest.tree.SVNTreeError:
     svntest.verify.display_trees(None, 'STATUS OUTPUT TREE',
                                  expected_status.old_tree(), actual)
-    print("ACTUAL STATUS TREE:")
+    logger.warn("ACTUAL STATUS TREE:")
     svntest.tree.dump_tree_script(actual, wc_dir + os.sep)
     raise
 

Modified: 
subversion/branches/compressed-pristines/subversion/tests/libsvn_fs/fs-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/libsvn_fs/fs-test.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/libsvn_fs/fs-test.c 
(original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/libsvn_fs/fs-test.c 
Sat Apr 14 12:37:25 2012
@@ -3529,7 +3529,7 @@ get_file_checksum(svn_checksum_t **check
 
 /* Return a pseudo-random number in the range [0,SCALAR) i.e. return
    a number N such that 0 <= N < SCALAR */
-static int my_rand(int scalar, apr_uint32_t *seed)
+static int my_rand(apr_uint64_t scalar, apr_uint32_t *seed)
 {
   static const apr_uint32_t TEST_RAND_MAX = 0xffffffffUL;
   /* Assumes TEST_RAND_MAX+1 can be exactly represented in a double */
@@ -3555,7 +3555,7 @@ random_data_to_buffer(char *buf,
 
   int ds_off = 0;
   const char *dataset = "0123456789";
-  int dataset_size = strlen(dataset);
+  apr_size_t dataset_size = strlen(dataset);
 
   if (full)
     {

Modified: 
subversion/branches/compressed-pristines/subversion/tests/libsvn_subr/crypto-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/libsvn_subr/crypto-test.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/libsvn_subr/crypto-test.c
 (original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/libsvn_subr/crypto-test.c
 Sat Apr 14 12:37:25 2012
@@ -29,7 +29,10 @@
 #include "../svn_test.h"
 #include "../../libsvn_subr/crypto.h"
 
-/* Helper function:  encrypt PASSWORD within CTX using MASTER, then
+
+/*** Helper functions ***/
+
+/* Encrypt PASSWORD within CTX using MASTER, then
    decrypt those results and ensure the original PASSWORD comes out
    the other end. */
 static svn_error_t *
@@ -73,6 +76,9 @@ encrypt_decrypt(svn_crypto__ctx_t *ctx,
 }
 
 
+
+/*** Test functions ***/
+
 static svn_error_t *
 test_encrypt_decrypt_password(apr_pool_t *pool)
 {
@@ -104,6 +110,68 @@ test_encrypt_decrypt_password(apr_pool_t
 }
 
 
+static svn_error_t *
+test_passphrase_check(apr_pool_t *pool)
+{
+  svn_crypto__ctx_t *ctx;
+  int i;
+  apr_pool_t *iterpool;
+  const char *passwords[] = {
+    "3ncryptm!3", /* fits in one block */
+    "this is a particularly long password", /* spans blocks */
+    "mypassphrase", /* with 4-byte padding, should align on block boundary */
+  };
+  const svn_string_t *ciphertext, *iv, *salt, *secret;
+  const char *checktext;
+  svn_boolean_t is_valid;
+  int num_passwords = sizeof(passwords) / sizeof(const char *);
+
+  /* Skip this test if the crypto subsystem is unavailable. */
+  if (! svn_crypto__is_available())
+    return svn_error_create(SVN_ERR_TEST_SKIPPED, NULL, NULL);
+
+  SVN_ERR(svn_crypto__context_create(&ctx, pool));
+
+  iterpool = svn_pool_create(pool);
+  for (i = 0; i < num_passwords; i++)
+    {
+      svn_pool_clear(iterpool);
+      secret = svn_string_create(passwords[i], iterpool);
+      SVN_ERR(svn_crypto__generate_secret_checktext(&ciphertext, &iv, &salt,
+                                                    &checktext, ctx, secret,
+                                                    iterpool, iterpool));
+      SVN_ERR(svn_crypto__verify_secret(&is_valid, ctx, secret, ciphertext,
+                                        iv, salt, checktext, iterpool));
+      if (! is_valid)
+        return svn_error_create(SVN_ERR_TEST_FAILED, NULL,
+                                "Error validating secret against checktext");
+    }
+
+  /* Now check that a bogus secret causes the validation to fail.  We
+     try to verify each secret against the checktext generated by the
+     previous one.  */
+  for (i = 0; i < num_passwords; i++)
+    {
+      int test_secret_index = (i + 1) % num_passwords;
+
+      svn_pool_clear(iterpool);
+      secret = svn_string_create(passwords[i], iterpool);
+      SVN_ERR(svn_crypto__generate_secret_checktext(&ciphertext, &iv, &salt,
+                                                    &checktext, ctx, secret,
+                                                    iterpool, iterpool));
+      secret = svn_string_create(passwords[test_secret_index], iterpool);
+      SVN_ERR(svn_crypto__verify_secret(&is_valid, ctx, secret, ciphertext,
+                                        iv, salt, checktext, iterpool));
+      if (is_valid)
+        return svn_error_create(SVN_ERR_TEST_FAILED, NULL,
+                                "Expected secret validation failure; "
+                                "got success");
+    }
+
+  svn_pool_destroy(iterpool);
+  return SVN_NO_ERROR;
+}
+
 
 
 
@@ -114,5 +182,7 @@ struct svn_test_descriptor_t test_funcs[
     SVN_TEST_NULL,
     SVN_TEST_PASS2(test_encrypt_decrypt_password,
                    "basic password encryption/decryption test"),
+    SVN_TEST_PASS2(test_passphrase_check,
+                   "password checktext generation/validation"),
     SVN_TEST_NULL
   };

Modified: 
subversion/branches/compressed-pristines/subversion/tests/libsvn_subr/string-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/libsvn_subr/string-test.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/libsvn_subr/string-test.c
 (original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/libsvn_subr/string-test.c
 Sat Apr 14 12:37:25 2012
@@ -39,7 +39,7 @@
 #include "svn_io.h"
 #include "svn_error.h"
 #include "svn_string.h"   /* This includes <apr_*.h> */
-
+#include "private/svn_string_private.h"
 
 /* A quick way to create error messages.  */
 static svn_error_t *
@@ -511,6 +511,35 @@ test23(apr_pool_t *pool)
   return test_stringbuf_unequal("abc", "abb", pool);
 }
 
+static svn_error_t *
+test24(apr_pool_t *pool)
+{
+  char buffer[SVN_INT64_BUFFER_SIZE];
+  apr_size_t length;
+
+  length = svn__i64toa(buffer, 0);
+  SVN_TEST_ASSERT(length == 1);
+  SVN_TEST_STRING_ASSERT(buffer, "0");
+
+  length = svn__i64toa(buffer, -0x8000000000000000ll);
+  SVN_TEST_ASSERT(length == 20);
+  SVN_TEST_STRING_ASSERT(buffer, "-9223372036854775808");
+
+  length = svn__i64toa(buffer, 0x7fffffffffffffffll);
+  SVN_TEST_ASSERT(length == 19);
+  SVN_TEST_STRING_ASSERT(buffer, "9223372036854775807");
+
+  length = svn__ui64toa(buffer, 0);
+  SVN_TEST_ASSERT(length == 1);
+  SVN_TEST_STRING_ASSERT(buffer, "0");
+
+  length = svn__ui64toa(buffer, 0xffffffffffffffffll);
+  SVN_TEST_ASSERT(length == 20);
+  SVN_TEST_STRING_ASSERT(buffer, "18446744073709551615");
+  
+  return test_stringbuf_unequal("abc", "abb", pool);
+}
+
 /*
    ====================================================================
    If you add a new test to this file, update this array.
@@ -568,5 +597,7 @@ struct svn_test_descriptor_t test_funcs[
                    "compare stringbufs; different lengths"),
     SVN_TEST_PASS2(test23,
                    "compare stringbufs; same length, different content"),
+    SVN_TEST_PASS2(test24,
+                   "verify i64toa"),
     SVN_TEST_NULL
   };

Modified: 
subversion/branches/compressed-pristines/subversion/tests/libsvn_wc/op-depth-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/libsvn_wc/op-depth-test.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/subversion/tests/libsvn_wc/op-depth-test.c
 (original)
+++ 
subversion/branches/compressed-pristines/subversion/tests/libsvn_wc/op-depth-test.c
 Sat Apr 14 12:37:25 2012
@@ -3169,9 +3169,7 @@ test_shadowed_update(const svn_test_opts
   SVN_ERR(wc_update(&b, "", 2));
   SVN_ERR(wc_copy(&b, "A", "A_tmp"));
   SVN_ERR(wc_update(&b, "", 1));
-  SVN_ERR(wc_move(&b, "A_tmp", "A")); /* ### XFAIL: sets moved-here on
-                                         A but A_tmp is removed and so
-                                         does not have moved-to. */
+  SVN_ERR(wc_move(&b, "A_tmp", "A"));
 
   SVN_ERR(wc_mkdir(&b, "K"));
   SVN_ERR(wc_mkdir(&b, "K/L"));
@@ -4626,7 +4624,7 @@ struct svn_test_descriptor_t test_funcs[
                        "test_op_delete"),
     SVN_TEST_OPTS_PASS(test_child_replace_with_same_origin,
                        "test_child_replace_with_same"),
-    SVN_TEST_OPTS_XFAIL(test_shadowed_update,
+    SVN_TEST_OPTS_PASS(test_shadowed_update,
                        "test_shadowed_update"),
     SVN_TEST_OPTS_PASS(test_copy_of_deleted,
                        "test_copy_of_deleted (issue #3873)"),

Modified: 
subversion/branches/compressed-pristines/subversion/tests/svn_test_main.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/subversion/tests/svn_test_main.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/subversion/tests/svn_test_main.c 
(original)
+++ subversion/branches/compressed-pristines/subversion/tests/svn_test_main.c 
Sat Apr 14 12:37:25 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;
@@ -461,7 +454,7 @@ main(int argc, const char *argv[])
         case server_minor_version_opt:
           {
             char *end;
-            opts.server_minor_version = strtol(opt_arg, &end, 10);
+            opts.server_minor_version = (int) strtol(opt_arg, &end, 10);
             if (end == opt_arg || *end != '\0')
               {
                 fprintf(stderr, "FAIL: Non-numeric minor version given\n");

Modified: 
subversion/branches/compressed-pristines/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
 (original)
+++ 
subversion/branches/compressed-pristines/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd
 Sat Apr 14 12:37:25 2012
@@ -56,6 +56,7 @@ 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:
 IF EXIST "%TESTDIR%\tests\subversion\tests\cmdline\httpd\" (
   rmdir /s /q  "%TESTDIR%\tests\subversion\tests\cmdline\httpd"

Modified: 
subversion/branches/compressed-pristines/tools/client-side/svnmucc/svnmucc.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/tools/client-side/svnmucc/svnmucc.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/tools/client-side/svnmucc/svnmucc.c 
(original)
+++ 
subversion/branches/compressed-pristines/tools/client-side/svnmucc/svnmucc.c 
Sat Apr 14 12:37:25 2012
@@ -69,8 +69,6 @@ static void handle_error(svn_error_t *er
 static apr_pool_t *
 init(const char *application)
 {
-  apr_allocator_t *allocator;
-  apr_pool_t *pool;
   svn_error_t *err;
   const svn_version_checklist_t checklist[] = {
     {"svn_client", svn_client_version},
@@ -81,19 +79,14 @@ init(const char *application)
 
   SVN_VERSION_DEFINE(my_version);
 
-  if (svn_cmdline_init(application, stderr)
-      || apr_allocator_create(&allocator))
+  if (svn_cmdline_init(application, stderr))
     exit(EXIT_FAILURE);
 
   err = svn_ver_check_list(&my_version, checklist);
   if (err)
     handle_error(err, NULL);
 
-  apr_allocator_max_free_set(allocator, SVN_ALLOCATOR_RECOMMENDED_MAX_FREE);
-  pool = svn_pool_create_ex(NULL, allocator);
-  apr_allocator_owner_set(allocator, pool);
-
-  return pool;
+  return apr_allocator_owner_get(svn_pool_create_allocator(FALSE));
 }
 
 static svn_error_t *

Modified: subversion/branches/compressed-pristines/tools/dev/merge-graph.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/tools/dev/merge-graph.py?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/tools/dev/merge-graph.py (original)
+++ subversion/branches/compressed-pristines/tools/dev/merge-graph.py Sat Apr 
14 12:37:25 2012
@@ -19,25 +19,40 @@
 #    under the License.
 # ====================================================================
 
-args_message = 'GRAPH_CONFIG_FILE...'
+args_message = '[-f png|svg|gif|dia... [-f ...]] GRAPH_CONFIG_FILE...'
 help_message = """Produce pretty graphs representing branches and merging.
-For each config file specified, construct a graph and write it as a PNG 
file."""
+For each config file specified, construct a graph and write it as a PNG file
+(or other graphical file formats)."""
 
 import sys
+import getopt
 from mergegraph import MergeDot
 
 
 # If run as a program, process each input filename as a graph config file.
 if __name__ == '__main__':
+  optlist, args = getopt.getopt(sys.argv[1:], 'f:', ['format'])
+
   prog_name = sys.argv[0]
-  if len(sys.argv) == 1:
+  if not args:
     usage = '%s: usage: "%s %s"' % (prog_name, prog_name, args_message)
     print >> sys.stderr, usage
     sys.exit(1)
 
-  for config_filename in sys.argv[1:]:
-    print prog_name + ": reading '" + config_filename + "',",
-    graph = MergeDot(config_filename, rankdir='LR', dpi='72')
-    print "writing '" + graph.filename + "'"
-    graph.write_png(graph.filename)
+  formats = []
+
+  for opt, opt_arg in optlist:
+    if opt == '-f':
+      formats.append(opt_arg)
 
+  if not formats:
+    formats.append('png')
+
+  for config_filename in args:
+    print "%s: reading '%s'," % (prog_name, config_filename),
+    graph = MergeDot(config_filename, rankdir='LR', dpi='72')
+    for format in formats:
+      filename = '%s.%s' % (graph.basename, format)
+      print "writing '%s'" % filename,
+      graph.save(format=format, filename=filename)
+    print

Modified: 
subversion/branches/compressed-pristines/tools/dev/mergegraph/mergegraph.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/tools/dev/mergegraph/mergegraph.py?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- subversion/branches/compressed-pristines/tools/dev/mergegraph/mergegraph.py 
(original)
+++ subversion/branches/compressed-pristines/tools/dev/mergegraph/mergegraph.py 
Sat Apr 14 12:37:25 2012
@@ -228,11 +228,11 @@ class MergeDot(MergeGraph, pydot.Dot):
     """Initialize a MergeDot graph's input data from a config file."""
     import ConfigParser
     if config_filename.endswith('.txt'):
-      default_filename = config_filename[:-4] + '.png'
+      default_basename = config_filename[:-4]
     else:
-      default_filename = config_filename + '.png'
+      default_basename = config_filename
 
-    config = ConfigParser.SafeConfigParser({ 'filename': default_filename,
+    config = ConfigParser.SafeConfigParser({ 'basename': default_basename,
                                              'title': None,
                                              'merges': '[]',
                                              'annotations': '[]' })
@@ -240,7 +240,7 @@ class MergeDot(MergeGraph, pydot.Dot):
     if len(files_read) == 0:
       print >> sys.stderr, 'graph: unable to read graph config from "' + 
config_filename + '"'
       sys.exit(1)
-    graph.filename = config.get('graph', 'filename')
+    graph.basename = config.get('graph', 'basename')
     graph.title = config.get('graph', 'title')
     graph.branches = eval(config.get('graph', 'branches'))
     graph.changes = eval(config.get('graph', 'changes'))
@@ -294,3 +294,11 @@ class MergeDot(MergeGraph, pydot.Dot):
     if graph.title:
       graph.add_node(Node('title', shape='plaintext', label='"' + graph.title 
+ '"'))
 
+  def save(graph, format='png', filename=None):
+    """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."""
+    if not filename:
+      filename = graph.basename + '.' + format
+    pydot.Dot.write(graph, filename, format=format)

Modified: 
subversion/branches/compressed-pristines/tools/dev/svnraisetreeconflict/main.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/tools/dev/svnraisetreeconflict/main.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/tools/dev/svnraisetreeconflict/main.c 
(original)
+++ 
subversion/branches/compressed-pristines/tools/dev/svnraisetreeconflict/main.c 
Sat Apr 14 12:37:25 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();

Modified: 
subversion/branches/compressed-pristines/tools/server-side/svn-rep-sharing-stats.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/compressed-pristines/tools/server-side/svn-rep-sharing-stats.c?rev=1326097&r1=1326096&r2=1326097&view=diff
==============================================================================
--- 
subversion/branches/compressed-pristines/tools/server-side/svn-rep-sharing-stats.c
 (original)
+++ 
subversion/branches/compressed-pristines/tools/server-side/svn-rep-sharing-stats.c
 Sat Apr 14 12:37:25 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();


Reply via email to