You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2012/03/27 01:23:49 UTC

svn commit: r1305667 [1/7] - in /subversion/branches/inheritable-props: ./ subversion/bindings/swig/python/svn/ subversion/bindings/swig/python/tests/ subversion/bindings/swig/ruby/svn/ subversion/bindings/swig/ruby/test/ subversion/include/private/ su...

Author: pburba
Date: Mon Mar 26 23:23:46 2012
New Revision: 1305667

URL: http://svn.apache.org/viewvc?rev=1305667&view=rev
Log:
On the inheritable-props branch: Sync with ^/subversion/trunk through
r1305659.

Added:
    subversion/branches/inheritable-props/tools/dist/make-deps-tarball.sh   (props changed)
      - copied unchanged from r1305659, subversion/trunk/tools/dist/make-deps-tarball.sh
Removed:
    subversion/branches/inheritable-props/tools/dist/templates/htaccess.ezt
    subversion/branches/inheritable-props/tools/dist/templates/rc-candidates.ezt
    subversion/branches/inheritable-props/tools/dist/templates/stable-candidates.ezt
Modified:
    subversion/branches/inheritable-props/   (props changed)
    subversion/branches/inheritable-props/CHANGES
    subversion/branches/inheritable-props/INSTALL
    subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/client.py
    subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/core.py
    subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/delta.py
    subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/diff.py
    subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/fs.py
    subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/ra.py
    subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/repos.py
    subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/wc.py
    subversion/branches/inheritable-props/subversion/bindings/swig/python/tests/pool.py
    subversion/branches/inheritable-props/subversion/bindings/swig/ruby/svn/fs.rb
    subversion/branches/inheritable-props/subversion/bindings/swig/ruby/test/test_info.rb
    subversion/branches/inheritable-props/subversion/include/private/svn_auth_private.h
    subversion/branches/inheritable-props/subversion/include/private/svn_client_private.h
    subversion/branches/inheritable-props/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
    subversion/branches/inheritable-props/subversion/libsvn_auth_kwallet/kwallet.cpp
    subversion/branches/inheritable-props/subversion/libsvn_client/copy.c
    subversion/branches/inheritable-props/subversion/libsvn_client/merge.c
    subversion/branches/inheritable-props/subversion/libsvn_fs/fs-loader.h
    subversion/branches/inheritable-props/subversion/libsvn_fs_fs/dag.c
    subversion/branches/inheritable-props/subversion/libsvn_fs_fs/dag.h
    subversion/branches/inheritable-props/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/inheritable-props/subversion/libsvn_fs_fs/tree.c
    subversion/branches/inheritable-props/subversion/libsvn_fs_fs/tree.h
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/blame.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/get_deleted_rev.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/getdate.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/getlocations.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/getlocationsegments.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/getlocks.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/locks.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/log.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/merge.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/mergeinfo.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/options.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/property.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/replay.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/sb_bucket.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/update.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/util.c
    subversion/branches/inheritable-props/subversion/libsvn_ra_serf/xml.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/gpg_agent.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/macos_keychain.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/simple_providers.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/win32_crypto.c
    subversion/branches/inheritable-props/subversion/po/fr.po
    subversion/branches/inheritable-props/subversion/po/ja.po
    subversion/branches/inheritable-props/subversion/svn/merge-cmd.c
    subversion/branches/inheritable-props/subversion/svnlook/main.c
    subversion/branches/inheritable-props/subversion/tests/cmdline/copy_tests.py
    subversion/branches/inheritable-props/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/inheritable-props/subversion/tests/cmdline/svnlook_tests.py
    subversion/branches/inheritable-props/subversion/tests/cmdline/svntest/main.py
    subversion/branches/inheritable-props/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/inheritable-props/tools/dev/unix-build/Makefile.svn
    subversion/branches/inheritable-props/tools/dist/_gnupg.py
    subversion/branches/inheritable-props/tools/dist/dist.sh
    subversion/branches/inheritable-props/tools/dist/release.py

Propchange: subversion/branches/inheritable-props/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1303256-1305659
  Merged /subversion/branches/node_pool:r1304828-1305388

Modified: subversion/branches/inheritable-props/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/CHANGES?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/CHANGES (original)
+++ subversion/branches/inheritable-props/CHANGES Mon Mar 26 23:23:46 2012
@@ -385,7 +385,7 @@ the 1.6 release:  http://subversion.apac
 
 
 Version 1.6.18
-(?? Mar 2012, from /branches/1.6.x)
+(29 Mar 2012, from /branches/1.6.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.6.18
 
   User-visible changes:

Modified: subversion/branches/inheritable-props/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/INSTALL?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/INSTALL (original)
+++ subversion/branches/inheritable-props/INSTALL Mon Mar 26 23:23:46 2012
@@ -324,7 +324,7 @@ I.    INTRODUCTION
       default.  Add "http-library = neon" to the [global] section of
       your ~/.subversion/servers file to use ra_neon instead.)
 
-        a. Serf library 0.7.1 or newer (http://code.google.com/p/serf/)
+        a. Serf library 1.1.0 or newer (http://code.google.com/p/serf/)
 
            In order to use ra_serf, you must install serf, and run
            Subversion's ./configure with the argument --with-serf.  If

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/client.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/client.py?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/client.py (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/client.py Mon Mar 26 23:23:46 2012
@@ -27,4 +27,5 @@ from libsvn.client import *
 from svn.core import _unprefix_names
 _unprefix_names(locals(), 'svn_client_')
 _unprefix_names(locals(), 'SVN_CLIENT_')
+__all__ = filter(lambda x: x.lower().startswith('svn_'), locals().keys())
 del _unprefix_names

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/core.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/core.py?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/core.py (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/core.py Mon Mar 26 23:23:46 2012
@@ -27,6 +27,44 @@ from libsvn.core import *
 import libsvn.core as _libsvncore
 import atexit as _atexit
 import sys
+__all__ = [
+  # Symbols that 'import *' used to pull (in 1.7)
+  'Pool',
+  'SVNSYNC_PROP_CURRENTLY_COPYING',
+  'SVNSYNC_PROP_FROM_URL',
+  'SVNSYNC_PROP_FROM_UUID',
+  'SVNSYNC_PROP_LAST_MERGED_REV',
+  'SVNSYNC_PROP_LOCK',
+  'SVNSYNC_PROP_PREFIX',
+  'SubversionException',
+  # 'apr_array_header_t',
+  # 'apr_file_open_stderr',
+  # 'apr_file_open_stdout',
+  # 'apr_file_t',
+  # 'apr_hash_t',
+  # 'apr_initialize',
+  # 'apr_pool_clear',
+  # 'apr_pool_destroy',
+  # 'apr_pool_t',
+  # 'apr_terminate',
+  # 'apr_time_ansi_put',
+  # 'run_app',
+
+  # Symbols defined explicitly below.
+  'SVN_IGNORED_REVNUM',
+  'SVN_INVALID_REVNUM',
+  'svn_path_compare_paths',
+  'svn_mergeinfo_merge',
+  'svn_mergeinfo_sort',
+  'svn_rangelist_merge',
+  'svn_rangelist_reverse',
+  # 'Stream',
+  # 'apr_initialize',
+  # 'apr_terminate',
+  'svn_pool_create',
+  'svn_pool_destroy',
+  'svn_pool_clear',
+]
 
 class SubversionException(Exception):
 

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/delta.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/delta.py?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/delta.py (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/delta.py Mon Mar 26 23:23:46 2012
@@ -27,6 +27,7 @@ from libsvn.delta import *
 from svn.core import _unprefix_names
 _unprefix_names(locals(), 'svn_delta_')
 _unprefix_names(locals(), 'svn_txdelta_', 'tx_')
+__all__ = filter(lambda x: x.lower().startswith('svn_'), locals().keys())
 del _unprefix_names
 
 # Force our accessor since it appears that there isn't a more civilized way

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/diff.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/diff.py?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/diff.py (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/diff.py Mon Mar 26 23:23:46 2012
@@ -26,4 +26,5 @@
 from libsvn.diff import *
 from svn.core import _unprefix_names
 _unprefix_names(locals(), 'svn_diff_')
+__all__ = filter(lambda x: x.lower().startswith('svn_'), locals().keys())
 del _unprefix_names

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/fs.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/fs.py?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/fs.py (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/fs.py Mon Mar 26 23:23:46 2012
@@ -27,6 +27,7 @@ from libsvn.fs import *
 from svn.core import _unprefix_names, Pool
 _unprefix_names(locals(), 'svn_fs_')
 _unprefix_names(locals(), 'SVN_FS_')
+__all__ = filter(lambda x: x.lower().startswith('svn_'), locals().keys())
 del _unprefix_names
 
 

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/ra.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/ra.py?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/ra.py (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/ra.py Mon Mar 26 23:23:46 2012
@@ -27,6 +27,7 @@ from libsvn.ra import *
 from svn.core import _unprefix_names
 _unprefix_names(locals(), 'svn_ra_')
 _unprefix_names(locals(), 'SVN_RA_')
+__all__ = filter(lambda x: x.lower().startswith('svn_'), locals().keys())
 del _unprefix_names
 
 class Callbacks:

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/repos.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/repos.py?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/repos.py (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/repos.py Mon Mar 26 23:23:46 2012
@@ -27,6 +27,7 @@ from libsvn.repos import *
 from svn.core import _unprefix_names, Pool
 _unprefix_names(locals(), 'svn_repos_')
 _unprefix_names(locals(), 'SVN_REPOS_')
+__all__ = filter(lambda x: x.lower().startswith('svn_'), locals().keys())
 del _unprefix_names
 
 

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/wc.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/wc.py?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/wc.py (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/python/svn/wc.py Mon Mar 26 23:23:46 2012
@@ -27,6 +27,7 @@ from libsvn.wc import *
 from svn.core import _unprefix_names
 _unprefix_names(locals(), 'svn_wc_')
 _unprefix_names(locals(), 'SVN_WC_')
+__all__ = filter(lambda x: x.lower().startswith('svn_'), locals().keys())
 del _unprefix_names
 
 

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/python/tests/pool.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/python/tests/pool.py?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/python/tests/pool.py (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/python/tests/pool.py Mon Mar 26 23:23:46 2012
@@ -195,10 +195,10 @@ class PoolTestCase(unittest.TestCase):
     self.assertNone(anonymous_pool_ref())
 
     # Try to cause a segfault using apr_terminate
-    apr_terminate()
-    apr_initialize()
-    apr_terminate()
-    apr_terminate()
+    svn.core.apr_terminate()
+    svn.core.apr_initialize()
+    svn.core.apr_terminate()
+    svn.core.apr_terminate()
 
     # Destroy the application pool
     svn_pool_destroy(libsvn.core.application_pool)

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/ruby/svn/fs.rb
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/ruby/svn/fs.rb?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/ruby/svn/fs.rb (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/ruby/svn/fs.rb Mon Mar 26 23:23:46 2012
@@ -415,7 +415,7 @@ module Svn
                         ignore_ancestry)
       end
 
-      def replay(editor, base_dir=nil, low_water_mark=nil, send_deltas=false,
+      def replay(editor, base_dir=nil, low_water_mark=nil, send_deltas=true,
                  &callback)
         base_dir ||= ""
         low_water_mark ||= Core::INVALID_REVNUM

Modified: subversion/branches/inheritable-props/subversion/bindings/swig/ruby/test/test_info.rb
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/bindings/swig/ruby/test/test_info.rb?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/bindings/swig/ruby/test/test_info.rb (original)
+++ subversion/branches/inheritable-props/subversion/bindings/swig/ruby/test/test_info.rb Mon Mar 26 23:23:46 2012
@@ -217,6 +217,7 @@ class SvnInfoTest < Test::Unit::TestCase
       assert_equal([file1, file2, file4].sort, keys[0..-2])
       assert_match(/\A#{file5}/, file5_key)
       assert(info.diffs[file1].has_key?(:modified))
+      assert(info.diffs[file1].has_key?(:property_changed))
       assert(info.diffs[file2].has_key?(:modified))
       assert(info.diffs[file4].has_key?(:added))
       assert(info.diffs[file4].has_key?(:property_changed))
@@ -229,6 +230,8 @@ class SvnInfoTest < Test::Unit::TestCase
       assert_equal(0, info.diffs[file4][:added].deleted_line)
       assert_equal(0, info.diffs[file5_key][:copied].added_line)
       assert_equal(0, info.diffs[file5_key][:copied].deleted_line)
+      assert_equal("Name: #{file1_prop_key}\n   - #{file1_prop_value}\n",
+                   info.diffs[file1][:property_changed].body)
       assert_equal("Name: #{file4_prop_key}\n   + #{file4_prop_value}\n",
                    info.diffs[file4][:property_changed].body)
       assert_equal(commit_info.revision, info.revision)

Modified: subversion/branches/inheritable-props/subversion/include/private/svn_auth_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/include/private/svn_auth_private.h?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/include/private/svn_auth_private.h (original)
+++ subversion/branches/inheritable-props/subversion/include/private/svn_auth_private.h Mon Mar 26 23:23:46 2012
@@ -82,36 +82,45 @@ typedef svn_error_t * (*svn_auth__passwo
    svn_boolean_t non_interactive,
    apr_pool_t *pool);
 
-/* Common implementation for simple_first_creds and
-   windows_simple_first_creds. Uses PARAMETERS, REALMSTRING and the
-   simple auth provider's username and password cache to fill a set of
-   CREDENTIALS. PASSWORD_GET is used to obtain the password value.
-   PASSTYPE identifies the type of the cached password. CREDENTIALS are
-   allocated from POOL. */
-svn_error_t *
-svn_auth__simple_first_creds_helper(void **credentials,
-                                    void **iter_baton,
-                                    void *provider_baton,
-                                    apr_hash_t *parameters,
-                                    const char *realmstring,
-                                    svn_auth__password_get_t password_get,
-                                    const char *passtype,
-                                    apr_pool_t *pool);
-
-/* Common implementation for simple_save_creds and
-   windows_simple_save_creds. Uses PARAMETERS and REALMSTRING to save
-   a set of CREDENTIALS to the simple auth provider's username and
-   password cache. PASSWORD_SET is used to store the password.
-   PASSTYPE identifies the type of the cached password. Allocates from POOL. */
-svn_error_t *
-svn_auth__simple_save_creds_helper(svn_boolean_t *saved,
-                                   void *credentials,
-                                   void *provider_baton,
-                                   apr_hash_t *parameters,
-                                   const char *realmstring,
-                                   svn_auth__password_set_t password_set,
-                                   const char *passtype,
-                                   apr_pool_t *pool);
+/* Use PARAMETERS and REALMSTRING to set *CREDENTIALS to a set of
+   pre-cached authentication credentials pulled from the simple
+   credential cache store identified by PASSTYPE.  PASSWORD_GET is
+   used to obtain the password value.  Allocate *CREDENTIALS from
+   POOL.
+
+   NOTE:  This function is a common implementation of code used by
+   several of the simple credential providers (the default disk cache
+   mechanism, Windows CryptoAPI, GNOME Keyring, etc.), typically in
+   their "first_creds" implementation.  */
+svn_error_t *
+svn_auth__simple_creds_cache_get(void **credentials,
+                                 void **iter_baton,
+                                 void *provider_baton,
+                                 apr_hash_t *parameters,
+                                 const char *realmstring,
+                                 svn_auth__password_get_t password_get,
+                                 const char *passtype,
+                                 apr_pool_t *pool);
+
+/* Use PARAMETERS and REALMSTRING to save CREDENTIALS in the simple
+   credential cache store identified by PASSTYPE.  PASSWORD_SET is
+   used to do the actual storage.  Use POOL for necessary allocations.
+   Set *SAVED according to whether or not the credentials were
+   successfully stored.
+
+   NOTE:  This function is a common implementation of code used by
+   several of the simple credential providers (the default disk cache
+   mechanism, Windows CryptoAPI, GNOME Keyring, etc.) typically in
+   their "save_creds" implementation.  */
+svn_error_t *
+svn_auth__simple_creds_cache_set(svn_boolean_t *saved,
+                                 void *credentials,
+                                 void *provider_baton,
+                                 apr_hash_t *parameters,
+                                 const char *realmstring,
+                                 svn_auth__password_set_t password_set,
+                                 const char *passtype,
+                                 apr_pool_t *pool);
 
 /* Implementation of svn_auth__password_get_t that retrieves
    the plaintext password from CREDS when USERNAME matches the stored
@@ -139,39 +148,45 @@ svn_auth__simple_password_set(svn_boolea
                               apr_pool_t *pool);
 
 
-/* Common implementation for ssl_client_cert_pw_file_first_credentials.
-   Uses PARAMETERS, REALMSTRING and the ssl client passphrase auth provider's
-   passphrase cache to fill the CREDENTIALS. PASSPHRASE_GET is used to obtain
-   the passphrase value. PASSTYPE identifies the type of the cached passphrase.
-   CREDENTIALS are allocated from POOL. */
-svn_error_t *
-svn_auth__ssl_client_cert_pw_file_first_creds_helper
-  (void **credentials,
-   void **iter_baton,
-   void *provider_baton,
-   apr_hash_t *parameters,
-   const char *realmstring,
-   svn_auth__password_get_t passphrase_get,
-   const char *passtype,
-   apr_pool_t *pool);
-
-/* Common implementation for ssl_client_cert_pw_file_save_credentials and
-   windows_ssl_client_cert_pw_file_save_credentials. Uses PARAMETERS and
-   REALMSTRING to save a set of CREDENTIALS to the ssl client cert auth
-   provider's passphrase cache. PASSPHRASE_SET is used to store the
-   passphrase. PASSTYPE identifies the type of the cached passphrase.
-   Allocates from POOL. */
-svn_error_t *
-svn_auth__ssl_client_cert_pw_file_save_creds_helper
-  (svn_boolean_t *saved,
-   void *credentials,
-   void *provider_baton,
-   apr_hash_t *parameters,
-   const char *realmstring,
-   svn_auth__password_set_t passphrase_set,
-   const char *passtype,
-   apr_pool_t *pool);
-
+/* Use PARAMETERS and REALMSTRING to set *CREDENTIALS to a set of
+   pre-cached authentication credentials pulled from the SSL client
+   certificate passphrase credential cache store identified by
+   PASSTYPE.  PASSPHRASE_GET is used to obtain the passphrase value.
+   Allocate *CREDENTIALS from POOL.
+
+   NOTE:  This function is a common implementation of code used by
+   several of the ssl client passphrase credential providers (the
+   default disk cache mechanism, Windows CryptoAPI, GNOME Keyring,
+   etc.), typically in their "first_creds" implementation.  */
+svn_error_t *
+svn_auth__ssl_client_cert_pw_cache_get(void **credentials,
+                                       void **iter_baton,
+                                       void *provider_baton,
+                                       apr_hash_t *parameters,
+                                       const char *realmstring,
+                                       svn_auth__password_get_t passphrase_get,
+                                       const char *passtype,
+                                       apr_pool_t *pool);
+
+/* Use PARAMETERS and REALMSTRING to save CREDENTIALS in the SSL
+   client certificate passphrase credential cache store identified by
+   PASSTYPE.  PASSPHRASE_SET is used to do the actual storage.  Use
+   POOL for necessary allocations.  Set *SAVED according to whether or
+   not the credentials were successfully stored.
+
+   NOTE:  This function is a common implementation of code used by
+   several of the simple credential providers (the default disk cache
+   mechanism, Windows CryptoAPI, GNOME Keyring, etc.) typically in
+   their "save_creds" implementation.  */
+svn_error_t *
+svn_auth__ssl_client_cert_pw_cache_set(svn_boolean_t *saved,
+                                       void *credentials,
+                                       void *provider_baton,
+                                       apr_hash_t *parameters,
+                                       const char *realmstring,
+                                       svn_auth__password_set_t passphrase_set,
+                                       const char *passtype,
+                                       apr_pool_t *pool);
 
 /* This implements the svn_auth__password_get_t interface.
    Set **PASSPHRASE to the plaintext passphrase retrieved from CREDS;

Modified: subversion/branches/inheritable-props/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/include/private/svn_client_private.h?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/inheritable-props/subversion/include/private/svn_client_private.h Mon Mar 26 23:23:46 2012
@@ -125,6 +125,8 @@ svn_client__find_symmetric_merge(svn_cli
                                  const svn_opt_revision_t *source_revision,
                                  const char *target_wcpath,
                                  svn_boolean_t allow_mixed_rev,
+                                 svn_boolean_t allow_local_mods,
+                                 svn_boolean_t allow_switched_subtrees,
                                  svn_client_ctx_t *ctx,
                                  apr_pool_t *result_pool,
                                  apr_pool_t *scratch_pool);
@@ -132,6 +134,18 @@ svn_client__find_symmetric_merge(svn_cli
 /* Perform a symmetric merge.
  *
  * Merge according to MERGE into the WC at TARGET_WCPATH.
+ *
+ * The other parameters are as in svn_client_merge4().  IGNORE_ANCESTRY
+ * only controls the diffing of files, it doesn't prevent mergeinfo from
+ * being used.
+ *
+ * ### TODO: There's little point in this function being the only way the
+ * caller can use the result of svn_client__find_symmetric_merge().  The
+ * contents of MERGE should be more public, or there should be other ways
+ * the caller can use it, or these two functions should be combined into
+ * one.  I want to make it more public, and also possibly have more ways
+ * to use it in future (for example, do_symmetric_merge_with_step_by_-
+ * step_confirmation).
  */
 svn_error_t *
 svn_client__do_symmetric_merge(const svn_client__symmetric_merge_t *merge,

Modified: subversion/branches/inheritable-props/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_auth_gnome_keyring/gnome_keyring.c Mon Mar 26 23:23:46 2012
@@ -403,13 +403,12 @@ simple_gnome_keyring_first_creds(void **
                                  const char *realmstring,
                                  apr_pool_t *pool)
 {
-  return svn_auth__simple_first_creds_helper
-           (credentials,
-            iter_baton, provider_baton,
-            parameters, realmstring,
-            password_get_gnome_keyring,
-            SVN_AUTH__GNOME_KEYRING_PASSWORD_TYPE,
-            pool);
+  return svn_auth__simple_creds_cache_get(credentials,
+                                          iter_baton, provider_baton,
+                                          parameters, realmstring,
+                                          password_get_gnome_keyring,
+                                          SVN_AUTH__GNOME_KEYRING_PASSWORD_TYPE,
+                                          pool);
 }
 
 /* Save encrypted credentials to the simple provider's cache. */
@@ -421,13 +420,12 @@ simple_gnome_keyring_save_creds(svn_bool
                                 const char *realmstring,
                                 apr_pool_t *pool)
 {
-  return svn_auth__simple_save_creds_helper
-           (saved, credentials,
-            provider_baton, parameters,
-            realmstring,
-            password_set_gnome_keyring,
-            SVN_AUTH__GNOME_KEYRING_PASSWORD_TYPE,
-            pool);
+  return svn_auth__simple_creds_cache_set(saved, credentials,
+                                          provider_baton, parameters,
+                                          realmstring,
+                                          password_set_gnome_keyring,
+                                          SVN_AUTH__GNOME_KEYRING_PASSWORD_TYPE,
+                                          pool);
 }
 
 static void
@@ -491,13 +489,10 @@ ssl_client_cert_pw_gnome_keyring_first_c
                                              const char *realmstring,
                                              apr_pool_t *pool)
 {
-  return svn_auth__ssl_client_cert_pw_file_first_creds_helper
-           (credentials,
-            iter_baton, provider_baton,
-            parameters, realmstring,
-            password_get_gnome_keyring,
-            SVN_AUTH__GNOME_KEYRING_PASSWORD_TYPE,
-            pool);
+  return svn_auth__ssl_client_cert_pw_cache_get(
+             credentials, iter_baton, provider_baton, parameters, realmstring,
+             password_get_gnome_keyring, SVN_AUTH__GNOME_KEYRING_PASSWORD_TYPE,
+             pool);
 }
 
 /* Save encrypted credentials to the ssl client cert password provider's
@@ -510,13 +505,10 @@ ssl_client_cert_pw_gnome_keyring_save_cr
                                             const char *realmstring,
                                             apr_pool_t *pool)
 {
-  return svn_auth__ssl_client_cert_pw_file_save_creds_helper
-           (saved, credentials,
-            provider_baton, parameters,
-            realmstring,
-            password_set_gnome_keyring,
-            SVN_AUTH__GNOME_KEYRING_PASSWORD_TYPE,
-            pool);
+  return svn_auth__ssl_client_cert_pw_cache_set(
+             saved, credentials, provider_baton, parameters, realmstring,
+             password_set_gnome_keyring, SVN_AUTH__GNOME_KEYRING_PASSWORD_TYPE,
+             pool);
 }
 
 static const svn_auth_provider_t gnome_keyring_ssl_client_cert_pw_provider = {

Modified: subversion/branches/inheritable-props/subversion/libsvn_auth_kwallet/kwallet.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_auth_kwallet/kwallet.cpp?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_auth_kwallet/kwallet.cpp (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_auth_kwallet/kwallet.cpp Mon Mar 26 23:23:46 2012
@@ -340,14 +340,14 @@ kwallet_simple_first_creds(void **creden
                            const char *realmstring,
                            apr_pool_t *pool)
 {
-  return svn_auth__simple_first_creds_helper(credentials,
-                                             iter_baton,
-                                             provider_baton,
-                                             parameters,
-                                             realmstring,
-                                             kwallet_password_get,
-                                             SVN_AUTH__KWALLET_PASSWORD_TYPE,
-                                             pool);
+  return svn_auth__simple_creds_cache_get(credentials,
+                                          iter_baton,
+                                          provider_baton,
+                                          parameters,
+                                          realmstring,
+                                          kwallet_password_get,
+                                          SVN_AUTH__KWALLET_PASSWORD_TYPE,
+                                          pool);
 }
 
 /* Save encrypted credentials to the simple provider's cache. */
@@ -359,13 +359,13 @@ kwallet_simple_save_creds(svn_boolean_t 
                           const char *realmstring,
                           apr_pool_t *pool)
 {
-  return svn_auth__simple_save_creds_helper(saved, credentials,
-                                            provider_baton,
-                                            parameters,
-                                            realmstring,
-                                            kwallet_password_set,
-                                            SVN_AUTH__KWALLET_PASSWORD_TYPE,
-                                            pool);
+  return svn_auth__simple_creds_cache_set(saved, credentials,
+                                          provider_baton,
+                                          parameters,
+                                          realmstring,
+                                          kwallet_password_set,
+                                          SVN_AUTH__KWALLET_PASSWORD_TYPE,
+                                          pool);
 }
 
 static const svn_auth_provider_t kwallet_simple_provider = {
@@ -405,13 +405,12 @@ kwallet_ssl_client_cert_pw_first_creds(v
                                        const char *realmstring,
                                        apr_pool_t *pool)
 {
-  return svn_auth__ssl_client_cert_pw_file_first_creds_helper
-           (credentials,
-            iter_baton, provider_baton,
-            parameters, realmstring,
-            kwallet_password_get,
-            SVN_AUTH__KWALLET_PASSWORD_TYPE,
-            pool);
+  return svn_auth__ssl_client_cert_pw_cache_get(credentials,
+                                                iter_baton, provider_baton,
+                                                parameters, realmstring,
+                                                kwallet_password_get,
+                                                SVN_AUTH__KWALLET_PASSWORD_TYPE,
+                                                pool);
 }
 
 /* Save encrypted credentials to the ssl client cert password provider's
@@ -424,13 +423,12 @@ kwallet_ssl_client_cert_pw_save_creds(sv
                                       const char *realmstring,
                                       apr_pool_t *pool)
 {
-  return svn_auth__ssl_client_cert_pw_file_save_creds_helper
-           (saved, credentials,
-            provider_baton, parameters,
-            realmstring,
-            kwallet_password_set,
-            SVN_AUTH__KWALLET_PASSWORD_TYPE,
-            pool);
+  return svn_auth__ssl_client_cert_pw_cache_set(saved, credentials,
+                                                provider_baton, parameters,
+                                                realmstring,
+                                                kwallet_password_set,
+                                                SVN_AUTH__KWALLET_PASSWORD_TYPE,
+                                                pool);
 }
 
 static const svn_auth_provider_t kwallet_ssl_client_cert_pw_provider = {

Modified: subversion/branches/inheritable-props/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_client/copy.c?rev=1305667&r1=1305666&r2=1305667&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_client/copy.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_client/copy.c Mon Mar 26 23:23:46 2012
@@ -495,6 +495,16 @@ verify_wc_srcs_and_dsts(const apr_array_
           SVN_ERR(svn_client__make_local_parents(pair->dst_parent_abspath,
                                                  TRUE, ctx, iterpool));
         }
+      else if (make_parents && dst_parent_kind == svn_node_dir)
+        {
+          /* Check if parent is already versioned */
+          SVN_ERR(svn_wc_read_kind(&dst_parent_kind, ctx->wc_ctx,
+                                   pair->dst_parent_abspath, FALSE, iterpool));
+
+          if (dst_parent_kind == svn_node_none)
+            SVN_ERR(svn_client__make_local_parents(pair->dst_parent_abspath,
+                                                   TRUE, ctx, iterpool));
+        }
       else if (dst_parent_kind != svn_node_dir)
         {
           return svn_error_createf(SVN_ERR_WC_NOT_WORKING_COPY, NULL,