subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stef...@apache.org
Subject svn commit: r1685464 [6/43] - in /subversion/branches/fsx-1.10: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ contrib/client-side/svncopy/ doc/ notes/ subversion/bindings/javahl/ subversion/bindings/javahl/native/ subversion/bi...
Date Sun, 14 Jun 2015 20:58:16 GMT
Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h Sun Jun 14 20:58:10 2015
@@ -108,7 +108,7 @@ SV *svn_swig_pl_convert_array(const apr_
 
 SV *svn_swig_pl_revnums_to_list(const apr_array_header_t *array);
 
-svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev, 
+svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev,
                                              SV *source,
                                              svn_boolean_t croak_on_error,
                                              apr_pool_t *pool);
@@ -135,9 +135,9 @@ svn_error_t * svn_swig_pl_thunk_client_d
 
 /* thunked commit editor callback. */
 svn_error_t *svn_swig_pl_thunk_commit_callback(svn_revnum_t new_revision,
-					       const char *date,
-					       const char *author,
-					       void *baton);
+                                               const char *date,
+                                               const char *author,
+                                               void *baton);
 
 /* thunked commit editor callback2. */
 svn_error_t *svn_swig_pl_thunk_commit_callback2(const svn_commit_info_t *commit_info,
@@ -209,22 +209,15 @@ svn_error_t *svn_swig_pl_thunk_ssl_clien
    svn_boolean_t may_save,
    apr_pool_t *pool);
 
-/* thunked callback for svn_ra_get_wc_prop_func_t */
-svn_error_t *thunk_get_wc_prop(void *baton,
-                               const char *relpath,
-                               const char *name,
-                               const svn_string_t **value,
-                               apr_pool_t *pool);
-
 /* Thunked version of svn_wc_notify_func_t callback type */
 void svn_swig_pl_notify_func(void * baton,
                              const char *path,
-		             svn_wc_notify_action_t action,
-			     svn_node_kind_t kind,
-			     const char *mime_type,
-			     svn_wc_notify_state_t content_state,
-			     svn_wc_notify_state_t prop_state,
-			     svn_revnum_t revision);
+                             svn_wc_notify_action_t action,
+                             svn_node_kind_t kind,
+                             const char *mime_type,
+                             svn_wc_notify_state_t content_state,
+                             svn_wc_notify_state_t prop_state,
+                             svn_revnum_t revision);
 
 
 /* Thunked version of svn_client_get_commit_log3_t callback type. */
@@ -278,11 +271,6 @@ void svn_swig_pl_make_editor(svn_delta_e
                              SV *perl_editor,
                              apr_pool_t *pool);
 
-void svn_swig_pl_wrap_window_handler(svn_txdelta_window_handler_t *handler,
-                                     void **h_baton,
-                                     SV *callback,
-                                     apr_pool_t *pool);
-
 /* svn_stream_t helpers */
 svn_error_t *svn_swig_pl_make_stream(svn_stream_t **stream, SV *obj);
 SV *svn_swig_pl_from_stream(svn_stream_t *stream);

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/perl/native/Core.pm
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/perl/native/Core.pm?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/perl/native/Core.pm (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/perl/native/Core.pm Sun Jun 14 20:58:10 2015
@@ -959,6 +959,8 @@ use SVN::Base qw(Core svn_log_entry_t_);
 
 =head2 svn_log_entry_t
 
+=over 4
+
 =item $entry-E<gt>revision()
 
 The revision of the commit.
@@ -988,6 +990,8 @@ in the same sense of C<_p_svn_merge_rang
 Whether C<$entry-E<gt>revision()> is a merged revision resulting 
 from a reverse merge.
 
+=back
+
 =cut
 
 package _p_svn_auth_cred_simple_t;

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/perl/native/Delta.pm
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/perl/native/Delta.pm?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/perl/native/Delta.pm (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/perl/native/Delta.pm Sun Jun 14 20:58:10 2015
@@ -101,12 +101,11 @@ use SVN::Base qw(Delta svn_txdelta_ appl
 
 # special case for backward compatibility.  When called with an additional
 # argument "md5", it's the old style and don't return the md5.
-# Note that since the returned m5 is to be populated upon the last window
-# sent to the handler, it's not currently working to magically change things
-# in Perl land.
 sub apply {
     if (@_ == 5 || (@_ == 4 && ref($_[-1]) ne 'SVN::Pool' && ref($_[-1]) ne '_p_apr_pool_t')) {
-        splice(@_, 3, 1);
+        # we're called as 
+        # apply($source, $target, $result_digest, $error_info [, $pool]) 
+        splice(@_, 2, 1);
         my @ret = SVN::_Delta::svn_txdelta_apply(@_);
         return @ret[1,2];
     }

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Sun Jun 14 20:58:10 2015
@@ -459,6 +459,14 @@ static PyObject *make_ob_wc_adm_access(v
                                       NULL);
 }
 
+static PyObject *make_ob_error(svn_error_t *err)
+{
+  if (err)
+    return svn_swig_NewPointerObjString(err, "svn_error_t *", NULL);
+  else
+    Py_RETURN_NONE;
+}
+
 
 /***/
 
@@ -1417,62 +1425,62 @@ commit_item_array_to_list(const apr_arra
 }
 
 
-
+ 
 /*** Errors ***/
 
 /* Convert a given SubversionException to an svn_error_t. On failure returns
    NULL and sets a Python exception. */
 static svn_error_t *exception_to_error(PyObject * exc)
 {
-	const char *message, *file = NULL;
-	apr_status_t apr_err;
-	long line = 0;
-	PyObject *apr_err_ob = NULL, *child_ob = NULL, *message_ob = NULL;
-	PyObject *file_ob = NULL, *line_ob = NULL;
+    const char *message, *file = NULL;
+    apr_status_t apr_err;
+    long line = 0;
+    PyObject *apr_err_ob = NULL, *child_ob = NULL, *message_ob = NULL;
+    PyObject *file_ob = NULL, *line_ob = NULL;
     svn_error_t *rv = NULL, *child = NULL;
 
-	if ((apr_err_ob = PyObject_GetAttrString(exc, "apr_err")) == NULL)
-	    goto finished;
-	apr_err = (apr_status_t) PyInt_AsLong(apr_err_ob);
-	if (PyErr_Occurred()) goto finished;
-
-	if ((message_ob = PyObject_GetAttrString(exc, "message")) == NULL)
-	    goto finished;
-	message = PyString_AsString(message_ob);
-	if (PyErr_Occurred()) goto finished;
-
-	if ((file_ob = PyObject_GetAttrString(exc, "file")) == NULL)
-	    goto finished;
-	if (file_ob != Py_None)
-	    file = PyString_AsString(file_ob);
-	if (PyErr_Occurred()) goto finished;
-
-	if ((line_ob = PyObject_GetAttrString(exc, "line")) == NULL)
-	    goto finished;
-	if (line_ob != Py_None)
-	    line = PyInt_AsLong(line_ob);
-	if (PyErr_Occurred()) goto finished;
-
-	if ((child_ob = PyObject_GetAttrString(exc, "child")) == NULL)
-	    goto finished;
-	/* We could check if the child is a Subversion exception too,
-	   but let's just apply duck typing. */
-	if (child_ob != Py_None)
-	    child = exception_to_error(child_ob);
-	if (PyErr_Occurred()) goto finished;
-
-	rv = svn_error_create(apr_err, child, message);
-	/* Somewhat hacky, but we need to preserve original file/line info. */
-	rv->file = file ? apr_pstrdup(rv->pool, file) : NULL;
-	rv->line = line;
+    if ((apr_err_ob = PyObject_GetAttrString(exc, "apr_err")) == NULL)
+        goto finished;
+    apr_err = (apr_status_t) PyInt_AsLong(apr_err_ob);
+    if (PyErr_Occurred()) goto finished;
+
+    if ((message_ob = PyObject_GetAttrString(exc, "message")) == NULL)
+        goto finished;
+    message = PyString_AsString(message_ob);
+    if (PyErr_Occurred()) goto finished;
+
+    if ((file_ob = PyObject_GetAttrString(exc, "file")) == NULL)
+        goto finished;
+    if (file_ob != Py_None)
+        file = PyString_AsString(file_ob);
+    if (PyErr_Occurred()) goto finished;
+
+    if ((line_ob = PyObject_GetAttrString(exc, "line")) == NULL)
+        goto finished;
+    if (line_ob != Py_None)
+        line = PyInt_AsLong(line_ob);
+    if (PyErr_Occurred()) goto finished;
+
+    if ((child_ob = PyObject_GetAttrString(exc, "child")) == NULL)
+        goto finished;
+    /* We could check if the child is a Subversion exception too,
+       but let's just apply duck typing. */
+    if (child_ob != Py_None)
+        child = exception_to_error(child_ob);
+    if (PyErr_Occurred()) goto finished;
+
+    rv = svn_error_create(apr_err, child, message);
+    /* Somewhat hacky, but we need to preserve original file/line info. */
+    rv->file = file ? apr_pstrdup(rv->pool, file) : NULL;
+    rv->line = line;
 
 finished:
-	Py_XDECREF(child_ob);
-	Py_XDECREF(line_ob);
-	Py_XDECREF(file_ob);
-	Py_XDECREF(message_ob);
-	Py_XDECREF(apr_err_ob);
-	return rv;
+    Py_XDECREF(child_ob);
+    Py_XDECREF(line_ob);
+    Py_XDECREF(file_ob);
+    Py_XDECREF(message_ob);
+    Py_XDECREF(apr_err_ob);
+    return rv;
 }
 
 /* If the currently set Python exception is a valid SubversionException,
@@ -1521,8 +1529,9 @@ finished:
 static svn_error_t *callback_bad_return_error(const char *message)
 {
   PyErr_SetString(PyExc_TypeError, message);
-  return svn_error_create(APR_EGENERAL, NULL,
-                          "Python callback returned an invalid object");
+  return svn_error_createf(APR_EGENERAL, NULL,
+                           "Python callback returned an invalid object: %s",
+                           message);
 }
 
 /* Return a generic error about not being able to map types. */
@@ -2376,7 +2385,7 @@ static svn_error_t *parse_fn3_close_revi
 }
 
 
-static const svn_repos_parse_fns3_t thunk_parse_fns3_vtable = 
+static const svn_repos_parse_fns3_t thunk_parse_fns3_vtable =
   {
     parse_fn3_magic_header_record,
     parse_fn3_uuid_record,
@@ -2853,6 +2862,42 @@ svn_error_t *svn_swig_py_fs_get_locks_fu
   return err;
 }
 
+svn_error_t *svn_swig_py_fs_lock_callback(
+                    void *baton,
+                    const char *path,
+                    const svn_lock_t *lock,
+                    svn_error_t *fs_err,
+                    apr_pool_t *pool)
+{
+  svn_error_t *err = SVN_NO_ERROR;
+  PyObject *py_callback = baton, *result;
+
+  if (py_callback == NULL || py_callback == Py_None)
+    return SVN_NO_ERROR;
+
+  svn_swig_py_acquire_py_lock();
+
+  if ((result = PyObject_CallFunction(py_callback,
+                                      (char *)"sO&O&O&",
+                                      path,
+                                      make_ob_lock, lock,
+                                      make_ob_error, fs_err,
+                                      make_ob_pool, pool)) == NULL)
+    {
+      err = callback_exception_error();
+    }
+  else if (result != Py_None)
+    {
+      err = callback_bad_return_error("Not None");
+    }
+
+  Py_XDECREF(result);
+
+  svn_swig_py_release_py_lock();
+  return err;
+}
+
+
 svn_error_t *svn_swig_py_get_commit_log_func(const char **log_msg,
                                              const char **tmp_file,
                                              const apr_array_header_t *
@@ -3761,7 +3806,7 @@ ra_callbacks_open_tmp_file(apr_file_t **
       *fp = svn_swig_py_make_file(result, pool);
       if (*fp == NULL)
        {
-      	  err = callback_exception_error();
+          err = callback_exception_error();
        }
     }
 
@@ -3811,7 +3856,7 @@ ra_callbacks_get_wc_prop(void *baton,
       Py_ssize_t len;
       if (PyString_AsStringAndSize(result, &buf, &len) == -1)
         {
-      	  err = callback_exception_error();
+          err = callback_exception_error();
         }
       else
         {
@@ -4053,7 +4098,7 @@ ra_callbacks_get_client_string(void *bat
     {
       if ((*name = PyString_AsString(result)) == NULL)
         {
-      	  err = callback_exception_error();
+          err = callback_exception_error();
         }
     }
 
@@ -4252,9 +4297,10 @@ svn_error_t *svn_swig_py_ra_lock_callbac
   svn_swig_py_acquire_py_lock();
 
   if ((result = PyObject_CallFunction(py_callback,
-                                     (char *)"sbO&O&",
+                                     (char *)"sbO&O&O&",
                                      path, do_lock,
                                      make_ob_lock, lock,
+                                     make_ob_error, ra_err,
                                      make_ob_pool, pool)) == NULL)
     {
       err = callback_exception_error();

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h Sun Jun 14 20:58:10 2015
@@ -316,6 +316,13 @@ svn_error_t *svn_swig_py_fs_get_locks_fu
                                            svn_lock_t *lock,
                                            apr_pool_t *pool);
 
+svn_error_t *svn_swig_py_fs_lock_callback(
+                    void *baton,
+                    const char *path,
+                    const svn_lock_t *lock,
+                    svn_error_t *ra_err,
+                    apr_pool_t *pool);
+
 /* thunked commit log fetcher */
 svn_error_t *svn_swig_py_get_commit_log_func(const char **log_msg,
                                              const char **tmp_file,

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/python/tests/ra.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/python/tests/ra.py?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/python/tests/ra.py (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/python/tests/ra.py Sun Jun 14 20:58:10 2015
@@ -298,13 +298,53 @@ class SubversionRepositoryAccessTestCase
     ra.get_file_revs(self.ra_ctx, "trunk/README.txt", 0, 10, rev_handler)
 
   def test_lock(self):
-    def callback(baton, path, do_lock, lock, ra_err, pool):
-      pass
-    # This test merely makes sure that the arguments can be wrapped
-    # properly. svn.ra.lock() currently fails because it is not possible
-    # to retrieve the username from the auth_baton yet.
-    self.assertRaises(core.SubversionException,
-      lambda: ra.lock(self.ra_ctx, {"": 0}, "sleutel", False, callback))
+
+    self.calls = 0
+    self.locks = 0
+    self.errors = 0
+    def callback(path, do_lock, lock, ra_err, pool):
+      self.calls += 1
+      self.assertEqual(path, "trunk/README2.txt")
+      if lock:
+        self.assertEqual(lock.owner, "jrandom")
+        self.locks += 1
+      if ra_err:
+        self.assert_(ra_err.apr_err == core.SVN_ERR_FS_PATH_ALREADY_LOCKED
+                     or ra_err.apr_err == core.SVN_ERR_FS_NO_SUCH_LOCK)
+        self.errors += 1
+
+    providers = [core.svn_auth_get_username_provider()]
+    self.callbacks.auth_baton = core.svn_auth_open(providers)
+    core.svn_auth_set_parameter(self.callbacks.auth_baton,
+                                core.SVN_AUTH_PARAM_DEFAULT_USERNAME,
+                                "jrandom")
+    self.ra_ctx = ra.open2(self.repos_uri, self.callbacks, {})
+    rev = fs.youngest_rev(self.fs)
+    ra.lock(self.ra_ctx, {"trunk/README2.txt":rev}, "sleutel", False, callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.locks, 1)
+    self.assertEqual(self.errors, 0)
+
+    self.calls = 0
+    self.locks = 0
+    ra.lock(self.ra_ctx, {"trunk/README2.txt":rev}, "sleutel", False, callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.locks, 0)
+    self.assertEqual(self.errors, 1)
+
+    self.calls = 0
+    self.errors = 0
+    the_lock = fs.get_lock(self.fs, "/trunk/README2.txt")
+    ra.unlock(self.ra_ctx, {"trunk/README2.txt":the_lock.token}, False, callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.locks, 0)
+    self.assertEqual(self.errors, 0)
+
+    self.calls = 0
+    ra.unlock(self.ra_ctx, {"trunk/README2.txt":the_lock.token}, False, callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.locks, 0)
+    self.assertEqual(self.errors, 1)
 
   def test_get_log2(self):
     # Get an interesting commmit.

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/python/tests/repository.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/python/tests/repository.py?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/python/tests/repository.py (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/python/tests/repository.py Sun Jun 14 20:58:10 2015
@@ -311,6 +311,98 @@ class SubversionRepositoryTestCase(unitt
     repos.freeze([self.repos_path], self.freeze_body)
     self.assertEqual(self.freeze_invoked, 1)
 
+  def test_lock_unlock(self):
+    """Basic lock/unlock"""
+
+    access = fs.create_access('jrandom')
+    fs.set_access(self.fs, access)
+    fs.lock(self.fs, '/trunk/README.txt', None, None, 0, 0, self.rev, False)
+    try:
+      fs.lock(self.fs, '/trunk/README.txt', None, None, 0, 0, self.rev, False)
+    except core.SubversionException, exc:
+      self.assertEqual(exc.apr_err, core.SVN_ERR_FS_PATH_ALREADY_LOCKED)
+    fs.lock(self.fs, '/trunk/README.txt', None, None, 0, 0, self.rev, True)
+
+    self.calls = 0
+    self.errors = 0
+    def unlock_callback(path, lock, err, pool):
+      self.assertEqual(path, '/trunk/README.txt')
+      self.assertEqual(lock, None)
+      self.calls += 1
+      if err != None:
+        self.assertEqual(err.apr_err, core.SVN_ERR_FS_NO_SUCH_LOCK)
+        self.errors += 1
+
+    the_lock = fs.get_lock(self.fs, '/trunk/README.txt')
+    fs.unlock_many(self.fs, {'/trunk/README.txt':the_lock.token}, False,
+                   unlock_callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.errors, 0)
+
+    self.calls = 0
+    fs.unlock_many(self.fs, {'/trunk/README.txt':the_lock.token}, False,
+                   unlock_callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.errors, 1)
+
+    self.locks = 0
+    def lock_callback(path, lock, err, pool):
+      self.assertEqual(path, '/trunk/README.txt')
+      if lock != None:
+        self.assertEqual(lock.owner, 'jrandom')
+        self.locks += 1
+      self.calls += 1
+      if err != None:
+        self.assertEqual(err.apr_err, core.SVN_ERR_FS_PATH_ALREADY_LOCKED)
+        self.errors += 1
+      
+    self.calls = 0
+    self.errors = 0
+    target = fs.lock_target_create(None, self.rev)
+    fs.lock_many(self.fs, {'trunk/README.txt':target},
+                 None, False, 0, False, lock_callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.locks, 1)
+    self.assertEqual(self.errors, 0)
+
+    self.calls = 0
+    self.locks = 0
+    fs.lock_many(self.fs, {'trunk/README.txt':target},
+                 None, False, 0, False, lock_callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.locks, 0)
+    self.assertEqual(self.errors, 1)
+
+    self.calls = 0
+    self.errors = 0
+    the_lock = fs.get_lock(self.fs, '/trunk/README.txt')
+    repos.fs_unlock_many(self.repos, {'trunk/README.txt':the_lock.token},
+                         False, unlock_callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.errors, 0)
+
+    self.calls = 0
+    repos.fs_unlock_many(self.repos, {'trunk/README.txt':the_lock.token},
+                         False, unlock_callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.errors, 1)
+
+    self.calls = 0
+    self.errors = 0
+    repos.fs_lock_many(self.repos, {'trunk/README.txt':target},
+                       None, False, 0, False, lock_callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.locks, 1)
+    self.assertEqual(self.errors, 0)
+
+    self.calls = 0
+    self.locks = 0
+    repos.fs_lock_many(self.repos, {'trunk/README.txt':target},
+                       None, False, 0, False, lock_callback)
+    self.assertEqual(self.calls, 1)
+    self.assertEqual(self.locks, 0)
+    self.assertEqual(self.errors, 1)
+
 def suite():
     return unittest.defaultTestLoader.loadTestsFromTestCase(
       SubversionRepositoryTestCase)

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c Sun Jun 14 20:58:10 2015
@@ -481,9 +481,9 @@ static void
 check_apr_status(apr_status_t status, VALUE exception_class, const char *format)
 {
     if (status != APR_SUCCESS) {
-	char buffer[1024];
-	apr_strerror(status, buffer, sizeof(buffer) - 1);
-	rb_raise(exception_class, format, buffer);
+        char buffer[1024];
+        apr_strerror(status, buffer, sizeof(buffer) - 1);
+        rb_raise(exception_class, format, buffer);
     }
 }
 
@@ -526,8 +526,8 @@ svn_swig_rb_destroyer_destroy(VALUE self
 
     objects[0] = target;
     if (find_swig_type_object(1, objects) && DATA_PTR(target)) {
-	svn_swig_rb_destroy_internal_pool(target);
-	DATA_PTR(target) = NULL;
+        svn_swig_rb_destroy_internal_pool(target);
+        DATA_PTR(target) = NULL;
     }
 
     return Qnil;
@@ -545,9 +545,9 @@ svn_swig_rb_initialize(void)
   }
 
   check_apr_status(apr_allocator_create(&swig_rb_allocator),
-		   rb_eLoadError, "failed to create allocator: %s");
+                   rb_eLoadError, "failed to create allocator: %s");
   apr_allocator_max_free_set(swig_rb_allocator,
-			     SVN_ALLOCATOR_RECOMMENDED_MAX_FREE);
+                             SVN_ALLOCATOR_RECOMMENDED_MAX_FREE);
 
   swig_rb_pool = svn_pool_create_ex(NULL, swig_rb_allocator);
   apr_pool_tag(swig_rb_pool, "svn-ruby-pool");
@@ -556,8 +556,8 @@ svn_swig_rb_initialize(void)
     apr_thread_mutex_t *mutex;
 
     check_apr_status(apr_thread_mutex_create(&mutex, APR_THREAD_MUTEX_DEFAULT,
-					     swig_rb_pool),
-		     rb_eLoadError, "failed to create allocator: %s");
+                                             swig_rb_pool),
+                                             rb_eLoadError, "failed to create allocator: %s");
     apr_allocator_mutex_set(swig_rb_allocator, mutex);
   }
 #endif
@@ -590,7 +590,7 @@ svn_swig_rb_initialize(void)
 
   mSvnDestroyer = rb_define_module_under(rb_svn(), "Destroyer");
   rb_define_module_function(mSvnDestroyer, "destroy",
-			    svn_swig_rb_destroyer_destroy, 1);
+                            svn_swig_rb_destroyer_destroy, 1);
 }
 
 apr_pool_t *
@@ -743,7 +743,7 @@ static svn_boolean_t
 rb_set_pool_if_swig_type_object(VALUE target, VALUE pool)
 {
   VALUE targets[1];
-  
+
   targets[0] = target;
 
   if (!NIL_P(find_swig_type_object(1, targets))) {
@@ -869,7 +869,7 @@ svn_swig_rb_raise_svn_repos_already_clos
 
 VALUE
 svn_swig_rb_svn_error_new(VALUE code, VALUE message, VALUE file, VALUE line,
-			  VALUE child)
+                          VALUE child)
 {
   return rb_funcall(rb_svn_error_svn_error(),
                     id_new_corresponding_error,

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/test_fs.rb
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/test_fs.rb?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/test_fs.rb (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/test_fs.rb Sun Jun 14 20:58:10 2015
@@ -110,7 +110,7 @@ class SvnFsTest < Test::Unit::TestCase
     FileUtils.mkdir_p(fs_path)
 
     make_context(log) do |ctx|
-      # ### Verify Svn::Error::RaLocalReposOpenFailed in chain 
+      # ### Verify Svn::Error::RaLocalReposOpenFailed in chain
       assert_raises(Svn::Error::RaCannotCreateSession) do
         ctx.log_message(path, rev)
       end

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/util.rb?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/util.rb (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/util.rb Sun Jun 14 20:58:10 2015
@@ -1,4 +1,4 @@
-# ==================================================================== 
+# ====================================================================
 #    Licensed to the Apache Software Foundation (ASF) under one
 #    or more contributor license agreements.  See the NOTICE file
 #    distributed with this work for additional information
@@ -91,7 +91,7 @@ module SvnTestUtil
     @need_svnserve = need_svnserve
     setup_default_variables
     setup_tmp
-    setup_tmp(@import_path) 
+    setup_tmp(@import_path)
     setup_repository
     add_hooks
     setup_svnserve if @need_svnserve

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/windows_util.rb
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/windows_util.rb?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/windows_util.rb (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/ruby/test/windows_util.rb Sun Jun 14 20:58:10 2015
@@ -51,7 +51,7 @@ module SvnTestUtil
 
           IO.popen("#{svnserve_path} -d -r #{Svnserve.escape_value(root)} --listen-host #{@svnserve_host} --listen-port #{@svnserve_port} --pid-file #{@svnserve_pid_file}")
           user = ENV["USERNAME"] || Etc.getlogin
-          
+
           # Give svnserve a bit of time to start
           sleep 1
         end

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/svn_client.i
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/svn_client.i?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/svn_client.i (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/svn_client.i Sun Jun 14 20:58:10 2015
@@ -293,8 +293,9 @@ Callback: svn_client_diff_summarize_func
  */
 #ifdef SWIGPERL
 %typemap(in) apr_hash_t *config {
-  $1 = svn_swig_pl_objs_to_hash_by_name ($input, "svn_config_t *",
-                                         svn_swig_pl_make_pool ((SV *)NULL));
+  apr_pool_t *pool = svn_swig_pl_make_pool ((SV *)NULL);
+  SPAGAIN;
+  $1 = svn_swig_pl_objs_to_hash_by_name ($input, "svn_config_t *", pool);
 }
 
 %typemap(out) apr_hash_t *config {

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/svn_fs.i
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/svn_fs.i?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/svn_fs.i (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/svn_fs.i Sun Jun 14 20:58:10 2015
@@ -71,6 +71,14 @@
                   ,
                   svn_swig_rb_fs_get_locks_callback)
 #endif
+
+#ifdef SWIGPYTHON
+%callback_typemap(svn_fs_lock_callback_t lock_callback, void *lock_baton,
+                  svn_swig_py_fs_lock_callback,
+                  ,
+                  )
+#endif
+
 /* -----------------------------------------------------------------------
    svn_fs_get_merge_info
 */

Modified: subversion/branches/fsx-1.10/subversion/bindings/swig/svn_wc.i
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/bindings/swig/svn_wc.i?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/bindings/swig/svn_wc.i (original)
+++ subversion/branches/fsx-1.10/subversion/bindings/swig/svn_wc.i Sun Jun 14 20:58:10 2015
@@ -43,6 +43,7 @@
 /* ### ignore these structures because the accessors will need a pool */
 %ignore svn_wc_keywords_t;
 %ignore svn_wc_conflict_description2_t;
+%ignore svn_wc_conflict_result_t;
 
 #ifdef SWIGRUBY
 %ignore svn_wc_external_item_create;

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_atomic.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_atomic.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_atomic.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_atomic.h Sun Jun 14 20:58:10 2015
@@ -76,21 +76,66 @@ extern "C" {
 /** @} */
 
 /**
+ * @name Single-threaded atomic initialization
+ * @{
+ */
+
+/**
+ * Callback for svn_atomic__init_once().
+ * @return an #svn_error_t if the initialization fails.
+ * @since New in 1.10
+ */
+typedef svn_error_t *(svn_atomic__err_init_func_t)(void *baton,
+                                                   apr_pool_t *pool);
+
+/**
+ * Callback for svn_atomic__init_no_error().
+ * @return a string containing an error message if the initialization fails.
+ * @since New in 1.10
+ */
+typedef const char *(svn_atomic__str_init_func_t)(void *baton);
+
+/**
  * Call an initialization function in a thread-safe manner.
  *
  * @a global_status must be a pointer to a global, zero-initialized
- * #svn_atomic_t. @a init_func is a pointer to the function that performs
- * the actual initialization. @a baton and and @a pool are passed on to the
- * init_func for its use.
+ * #svn_atomic_t. @a err_init_func is a pointer to the function that
+ * performs the actual initialization. @a baton and and @a pool are
+ * passed on to @a err_init_func for its use.
+ *
+ * @return the error returned by @a err_init_func.
  *
  * @since New in 1.5.
  */
 svn_error_t *
 svn_atomic__init_once(volatile svn_atomic_t *global_status,
-                      svn_error_t *(*init_func)(void*,apr_pool_t*),
+                      svn_atomic__err_init_func_t err_init_func,
                       void *baton,
                       apr_pool_t* pool);
 
+/**
+ * Call an initialization function in a thread-safe manner.
+ *
+ * Unlike svn_atomic__init_once(), this function does not need a pool
+ * and does not create an #svn_error_t, and neither should the
+ * @a str_init_func implementation.
+ *
+ * @a global_status must be a pointer to a global, zero-initialized
+ * #svn_atomic_t. @a str_init_func is a pointer to the function that
+ * performs the actual initialization. @a baton is passed on to
+ * @a str_init_func for its use.
+ *
+ * @return the error string returned by @a str_init_func.
+ *
+ * @since New in 1.10.
+ */
+const char *
+svn_atomic__init_once_no_error(volatile svn_atomic_t *global_status,
+                               svn_atomic__str_init_func_t str_init_func,
+                               void *baton);
+
+/** @} */
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_auth_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_auth_private.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_auth_private.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_auth_private.h Sun Jun 14 20:58:10 2015
@@ -234,10 +234,12 @@ svn_auth__ssl_client_cert_pw_set(svn_boo
 /* Apply the specified configuration for connecting with SERVER_NAME
    to the auth baton */
 svn_error_t *
-svn_auth__apply_config_for_server(svn_auth_baton_t *ab,
-                                  apr_hash_t *config,
-                                  const char *server_name,
-                                  apr_pool_t *scratch_pool);
+svn_auth__make_session_auth(svn_auth_baton_t **session_auth_baton,
+                            const svn_auth_baton_t *auth_baton,
+                            apr_hash_t *config,
+                            const char *server_name,
+                            apr_pool_t *result_pool,
+                            apr_pool_t *scratch_pool);
 
 #if (defined(WIN32) && !defined(__MINGW32__)) || defined(DOXYGEN)
 /**

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_cache.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_cache.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_cache.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_cache.h Sun Jun 14 20:58:10 2015
@@ -542,6 +542,15 @@ svn_cache__get_global_membuffer_cache(vo
 svn_cache__info_t *
 svn_cache__membuffer_get_global_info(apr_pool_t *pool);
 
+/**
+ * Remove all current contents from CACHE.
+ *
+ * NOTE:  In a multi-threaded environment, new contents may have been put
+ * into the cache by the time this function returns.
+ */
+svn_error_t *
+svn_cache__membuffer_clear(svn_membuffer_t *cache);
+
 /** @} */
 
 

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_client_private.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_client_private.h Sun Jun 14 20:58:10 2015
@@ -40,6 +40,51 @@ extern "C" {
 #endif /* __cplusplus */
 
 
+/* Set *REVNUM to the revision number identified by REVISION.
+
+   If REVISION->kind is svn_opt_revision_number, just use
+   REVISION->value.number, ignoring LOCAL_ABSPATH and RA_SESSION.
+
+   Else if REVISION->kind is svn_opt_revision_committed,
+   svn_opt_revision_previous, or svn_opt_revision_base, or
+   svn_opt_revision_working, then the revision can be identified
+   purely based on the working copy's administrative information for
+   LOCAL_ABSPATH, so RA_SESSION is ignored.  If LOCAL_ABSPATH is not
+   under revision control, return SVN_ERR_UNVERSIONED_RESOURCE, or if
+   LOCAL_ABSPATH is null, return SVN_ERR_CLIENT_VERSIONED_PATH_REQUIRED.
+
+   Else if REVISION->kind is svn_opt_revision_date or
+   svn_opt_revision_head, then RA_SESSION is used to retrieve the
+   revision from the repository (using REVISION->value.date in the
+   former case), and LOCAL_ABSPATH is ignored.  If RA_SESSION is null,
+   return SVN_ERR_CLIENT_RA_ACCESS_REQUIRED.
+
+   Else if REVISION->kind is svn_opt_revision_unspecified, set
+   *REVNUM to SVN_INVALID_REVNUM.
+
+   If YOUNGEST_REV is non-NULL, it is an in/out parameter.  If
+   *YOUNGEST_REV is valid, use it as the youngest revision in the
+   repository (regardless of reality) -- don't bother to lookup the
+   true value for HEAD, and don't return any value in *REVNUM greater
+   than *YOUNGEST_REV.  If *YOUNGEST_REV is not valid, and a HEAD
+   lookup is required to populate *REVNUM, then also populate
+   *YOUNGEST_REV with the result.  This is useful for making multiple
+   serialized calls to this function with a basically static view of
+   the repository, avoiding race conditions which could occur between
+   multiple invocations with HEAD lookup requests.
+
+   Else return SVN_ERR_CLIENT_BAD_REVISION.
+
+   Use SCRATCH_POOL for any temporary allocation.  */
+svn_error_t *
+svn_client__get_revision_number(svn_revnum_t *revnum,
+                                svn_revnum_t *youngest_rev,
+                                svn_wc_context_t *wc_ctx,
+                                const char *local_abspath,
+                                svn_ra_session_t *ra_session,
+                                const svn_opt_revision_t *revision,
+                                apr_pool_t *scratch_pool);
+
 /* Return true if KIND is a revision kind that is dependent on the working
  * copy. Otherwise, return false. */
 #define SVN_CLIENT__REVKIND_NEEDS_WC(kind)                                 \

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_cmdline_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_cmdline_private.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_cmdline_private.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_cmdline_private.h Sun Jun 14 20:58:10 2015
@@ -88,11 +88,15 @@ typedef struct svn_cmdline__config_argum
  * containing svn_cmdline__config_argument_t* elements, allocating the option
  * data in @a pool
  *
+ * [Since 1.9:] If the file, section, or option value is not recognized,
+ * warn to @c stderr, using @a prefix as in svn_handle_warning2().
+ *
  * @since New in 1.7.
  */
 svn_error_t *
 svn_cmdline__parse_config_option(apr_array_header_t *config_options,
                                  const char *opt_arg,
+                                 const char *prefix,
                                  apr_pool_t *pool);
 
 /** Sets the config options in @a config_options, an apr array containing
@@ -220,6 +224,20 @@ svn_boolean_t
 svn_cmdline__be_interactive(svn_boolean_t non_interactive,
                             svn_boolean_t force_interactive);
 
+/* Parses the argument value of '--trust-server-cert-failures' OPT_ARG into
+ * the expected booleans for passing to svn_cmdline_create_auth_baton2()
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_cmdline__parse_trust_options(
+                        svn_boolean_t *trust_server_cert_unknown_ca,
+                        svn_boolean_t *trust_server_cert_cn_mismatch,
+                        svn_boolean_t *trust_server_cert_expired,
+                        svn_boolean_t *trust_server_cert_not_yet_valid,
+                        svn_boolean_t *trust_server_cert_other_failure,
+                        const char *opt_arg,
+                        apr_pool_t *scratch_pool);
 
 #ifdef __cplusplus
 }

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_dep_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_dep_compat.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_dep_compat.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_dep_compat.h Sun Jun 14 20:58:10 2015
@@ -20,7 +20,7 @@
  * ====================================================================
  * @endcopyright
  *
- * @file svn_compat.h
+ * @file svn_dep_compat.h
  * @brief Compatibility macros and functions.
  * @since New in 1.5.0.
  */
@@ -75,6 +75,31 @@ extern "C" {
 #endif
 
 /**
+ * Indicate whether we are running on a POSIX platform.  This has
+ * implications on the way e.g. fsync() works.
+ *
+ * For details on this check, see
+ * http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system#POSIX
+ *
+ * @since New in 1.10.
+ */
+#ifndef SVN_ON_POSIX
+#if    !defined(_WIN32) \
+    && (   defined(__unix__) \
+        || defined(__unix) \
+        || (defined(__APPLE__) && defined(__MACH__)))  /* UNIX-style OS? */
+#  include <unistd.h>
+#  if defined(_POSIX_VERSION)
+#    define SVN_ON_POSIX 1
+#  else
+#    define SVN_ON_POSIX 0
+#  endif
+#else
+#  define SVN_ON_POSIX 0
+#endif
+#endif
+
+/**
  * APR keeps a few interesting defines hidden away in its private
  * headers apr_arch_file_io.h, so we redefined them here.
  *

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_fs_fs_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_fs_fs_private.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_fs_fs_private.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_fs_fs_private.h Sun Jun 14 20:58:10 2015
@@ -53,7 +53,8 @@ typedef struct svn_fs_fs__large_change_i
   /* size of the (deltified) representation */
   apr_uint64_t size;
 
-  /* Revision of the representation. SVN_INVALID_REVNUM for unused entries. */
+  /* Revision of the representation. SVN_INVALID_REVNUM for unused entries.
+   */
   svn_revnum_t revision;
 
   /* node path. "" for unused instances */
@@ -267,19 +268,20 @@ svn_fs_fs__get_stats(svn_fs_fs__stats_t
                      apr_pool_t *result_pool,
                      apr_pool_t *scratch_pool);
 
-/* Node-revision IDs in FSFS consist of 3 of sub-IDs ("parts") that consist
+/* A node-revision ID in FSFS consists of 3 sub-IDs ("parts") that consist
  * of a creation REVISION number and some revision- / transaction-local
  * counter value (NUMBER).  Old-style ID parts use global counter values.
  *
  * The parts are: node_id, copy_id and txn_id for in-txn IDs as well as
- * node_id, copy_id and rev_offset for in-revision IDs.  This struct the
+ * node_id, copy_id and rev_item for in-revision IDs.  This struct is the
  * data structure used for each of those parts.
  */
 typedef struct svn_fs_fs__id_part_t
 {
-  /* SVN_INVALID_REVNUM for txns -> not a txn, COUNTER must be 0.
-     SVN_INVALID_REVNUM for others -> not assigned to a revision, yet.
-     0                  for others -> old-style ID or the root in rev 0. */
+  /* SVN_INVALID_REVNUM for txn_id part -> not a txn, NUMBER must be 0.
+     SVN_INVALID_REVNUM for other parts -> not assigned to a revision, yet.
+     0                  for other parts -> old-style ID or the root in rev 0.
+   */
   svn_revnum_t revision;
 
   /* sub-id value relative to REVISION.  Its interpretation depends on
@@ -296,7 +298,7 @@ typedef struct svn_fs_fs__p2l_entry_t
 {
   /* offset of the first byte that belongs to the item */
   apr_off_t offset;
-  
+
   /* length of the item in bytes */
   apr_off_t size;
 

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_mutex.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_mutex.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_mutex.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_mutex.h Sun Jun 14 20:58:10 2015
@@ -27,8 +27,6 @@
 #ifndef SVN_MUTEX_H
 #define SVN_MUTEX_H
 
-#include <apr_thread_mutex.h>
-
 #include "svn_error.h"
 
 #ifdef __cplusplus

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_packed_data.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_packed_data.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_packed_data.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_packed_data.h Sun Jun 14 20:58:10 2015
@@ -221,7 +221,7 @@ svn_packed__byte_count(svn_packed__byte_
 /* Return the next number from STREAM as unsigned integer.  Returns 0 when
  * reading beyond the end of the stream.
  */
-apr_uint64_t 
+apr_uint64_t
 svn_packed__get_uint(svn_packed__int_stream_t *stream);
 
 /* Return the next number from STREAM as signed integer.  Returns 0 when

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_repos_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_repos_private.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_repos_private.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_repos_private.h Sun Jun 14 20:58:10 2015
@@ -164,7 +164,7 @@ typedef struct svn_repos__config_pool_t
 
 /* Create a new configuration pool object with a lifetime determined by
  * POOL and return it in *CONFIG_POOL.
- * 
+ *
  * The THREAD_SAFE flag indicates whether the pool actually needs to be
  * thread-safe and POOL must be also be thread-safe if this flag is set.
  */

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_sorts_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_sorts_private.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_sorts_private.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_sorts_private.h Sun Jun 14 20:58:10 2015
@@ -20,7 +20,7 @@
  * ====================================================================
  * @endcopyright
  *
- * @file svn_sorts.h
+ * @file svn_sorts_private.h
  * @brief all sorts of sorts.
  */
 
@@ -28,7 +28,7 @@
 #ifndef SVN_SORTS_PRIVATE_H
 #define SVN_SORTS_PRIVATE_H
 
-#include "../svn_sorts.h" 
+#include "../svn_sorts.h"
 
 #ifdef __cplusplus
 extern "C" {

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_sqlite.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_sqlite.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_sqlite.h Sun Jun 14 20:58:10 2015
@@ -63,7 +63,7 @@ typedef enum svn_sqlite__mode_e {
 typedef svn_error_t *(*svn_sqlite__func_t)(svn_sqlite__context_t *sctx,
                                            int argc,
                                            svn_sqlite__value_t *values[],
-                                           apr_pool_t *scatch_pool);
+                                           void *baton);
 
 
 /* Step the given statement; if it returns SQLITE_DONE, reset the statement.

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_string_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_string_private.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_string_private.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_string_private.h Sun Jun 14 20:58:10 2015
@@ -197,10 +197,17 @@ apr_uint64_t
 svn__base36toui64(const char **next, const char *source);
 
 /**
+ * The upper limit of the similarity range returned by
+ * svn_cstring__similarity() and svn_string__similarity().
+ */
+#define SVN_STRING__SIM_RANGE_MAX 1000000
+
+/**
  * Computes the similarity score of STRA and STRB. Returns the ratio
  * of the length of their longest common subsequence and the average
- * length of the strings, normalized to the range [0..1000].
- * The result is equivalent to Python's
+ * length of the strings, normalized to the range
+ * [0..SVN_STRING__SIM_RANGE_MAX]. The result is equivalent to
+ * Python's
  *
  *   difflib.SequenceMatcher.ratio
  *
@@ -225,7 +232,7 @@ svn__base36toui64(const char **next, con
  *    has O(strlen(STRA) * strlen(STRB)) worst-case performance,
  *    so do keep a rein on your enthusiasm.
  */
-unsigned int
+apr_size_t
 svn_cstring__similarity(const char *stra, const char *strb,
                         svn_membuf_t *buffer, apr_size_t *rlcs);
 
@@ -233,7 +240,7 @@ svn_cstring__similarity(const char *stra
  * Like svn_cstring__similarity, but accepts svn_string_t's instead
  * of NUL-terminated character strings.
  */
-unsigned int
+apr_size_t
 svn_string__similarity(const svn_string_t *stringa,
                        const svn_string_t *stringb,
                        svn_membuf_t *buffer, apr_size_t *rlcs);

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_subr_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_subr_private.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_subr_private.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_subr_private.h Sun Jun 14 20:58:10 2015
@@ -306,7 +306,7 @@ svn__fnv1a_32(const void *input, apr_siz
 /**
  * Return a 32 bit modified FNV-1a checksum for the first @a len bytes in
  * @a input.
- * 
+ *
  * @note This is a proprietary checksumming algorithm based FNV-1a with
  *       approximately the same strength.  It is up to 4 times faster
  *       than plain FNV-1a for longer data blocks.
@@ -416,7 +416,7 @@ typedef struct svn_hash__entry_t
 /** Reads a single key-value pair from @a stream and returns it in the
  * caller-provided @a *entry (members don't need to be pre-initialized).
  * @a pool is used to allocate members of @a *entry and for tempoaries.
- * 
+ *
  * @see #svn_hash_read2 for more details.
  *
  * @since New in 1.9.
@@ -537,20 +537,21 @@ svn__decode_uint(apr_uint64_t *val,
                  const unsigned char *p,
                  const unsigned char *end);
 
-/* Get the data from IN, compress it according to the specified
- * COMPRESSION_METHOD and write the result to OUT.
+/* Compress the data from DATA with length LEN, it according to the
+ * specified COMPRESSION_METHOD and write the result to OUT.
  * SVN__COMPRESSION_NONE is valid for COMPRESSION_METHOD.
  */
 svn_error_t *
-svn__compress(svn_stringbuf_t *in,
+svn__compress(const void *data, apr_size_t len,
               svn_stringbuf_t *out,
               int compression_method);
 
-/* Get the compressed data from IN, decompress it and write the result to
- * OUT.  Return an error if the decompressed size is larger than LIMIT.
+/* Decompress the compressed data from DATA with length LEN and write the
+ * result to OUT.  Return an error if the decompressed size is larger than
+ * LIMIT.
  */
 svn_error_t *
-svn__decompress(svn_stringbuf_t *in,
+svn__decompress(const void *data, apr_size_t len,
                 svn_stringbuf_t *out,
                 apr_size_t limit);
 
@@ -652,7 +653,7 @@ svn_config__get_default_config(apr_hash_
  */
 
 /* This opaque data struct is an alternative to an INT->VOID hash.
- * 
+ *
  * Technically, it is an automatically growing packed bit array.
  * All indexes not previously set are implicitly 0 and setting it will
  * grow the array as needed.
@@ -681,6 +682,11 @@ svn_boolean_t
 svn_bit_array__get(svn_bit_array__t *array,
                    apr_size_t idx);
 
+/* Return the global pool used by the DSO loader, this may be NULL if
+   no DSOs have been loaded. */
+apr_pool_t *
+svn_dso__pool(void);
+
 /** @} */
 
 #ifdef __cplusplus

Modified: subversion/branches/fsx-1.10/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/private/svn_wc_private.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/private/svn_wc_private.h Sun Jun 14 20:58:10 2015
@@ -82,6 +82,8 @@ svn_wc__get_file_external_editor(const s
                                  const char *recorded_url,
                                  const svn_opt_revision_t *recorded_peg_rev,
                                  const svn_opt_revision_t *recorded_rev,
+                                 svn_wc_conflict_resolver_func2_t conflict_func,
+                                 void *conflict_baton,
                                  svn_cancel_func_t cancel_func,
                                  void *cancel_baton,
                                  svn_wc_notify_func2_t notify_func,
@@ -380,15 +382,13 @@ svn_wc__status2_from_3(svn_wc_status2_t
                        apr_pool_t *result_pool,
                        apr_pool_t *scratch_pool);
 
-
 /**
  * Set @a *children to a new array of the immediate children of the working
  * node at @a dir_abspath.  The elements of @a *children are (const char *)
  * absolute paths.
  *
- * Include children that are scheduled for deletion.  Iff @a show_hidden
- * is true, also include children that are 'excluded' or 'server-excluded' or
- * 'not-present'.
+ * Include children that are scheduled for deletion, but not those that
+ * are excluded, server-excluded or not-present.
  *
  * Return every path that refers to a child of the working node at
  * @a dir_abspath.  Do not include a path just because it was a child of a
@@ -402,24 +402,20 @@ svn_error_t *
 svn_wc__node_get_children_of_working_node(const apr_array_header_t **children,
                                           svn_wc_context_t *wc_ctx,
                                           const char *dir_abspath,
-                                          svn_boolean_t show_hidden,
                                           apr_pool_t *result_pool,
                                           apr_pool_t *scratch_pool);
 
 /**
- * Like svn_wc__node_get_children_of_working_node(), except also include any
- * path that was a child of a deleted directory that existed at
- * @a dir_abspath, even if that directory is now scheduled to be replaced by
- * the working node at @a dir_abspath.
+ * Gets the immediate 'not-present' children of a node.
+ *
+ * #### Needed during 'svn cp WC URL' to handle mixed revision cases
  */
 svn_error_t *
-svn_wc__node_get_children(const apr_array_header_t **children,
-                          svn_wc_context_t *wc_ctx,
-                          const char *dir_abspath,
-                          svn_boolean_t show_hidden,
-                          apr_pool_t *result_pool,
-                          apr_pool_t *scratch_pool);
-
+svn_wc__node_get_not_present_children(const apr_array_header_t **children,
+                                      svn_wc_context_t *wc_ctx,
+                                      const char *dir_abspath,
+                                      apr_pool_t *result_pool,
+                                      apr_pool_t *scratch_pool);
 
 /**
  * Fetch the repository information for the working version
@@ -519,26 +515,6 @@ svn_wc__node_get_origin(svn_boolean_t *i
                         apr_pool_t *scratch_pool);
 
 /**
- * Set @a *deleted_ancestor_abspath to the root of the delete operation
- * that deleted @a local_abspath. If @a local_abspath itself was deleted
- * and has no deleted ancestor, @a *deleted_ancestor_abspath will equal
- * @a local_abspath. If @a local_abspath was not deleted,
- * set @a *deleted_ancestor_abspath to @c NULL.
- *
- * A node is considered 'deleted' if it is deleted or moved-away, and is
- * not replaced.
- *
- * @a *deleted_ancestor_abspath is allocated in @a result_pool.
- * Use @a scratch_pool for all temporary allocations.
- */
-svn_error_t *
-svn_wc__node_get_deleted_ancestor(const char **deleted_ancestor_abspath,
-                                  svn_wc_context_t *wc_ctx,
-                                  const char *local_abspath,
-                                  apr_pool_t *result_pool,
-                                  apr_pool_t *scratch_pool);
-
-/**
  * Set @a *not_present to TRUE when @a local_abspath has status
  * svn_wc__db_status_not_present. Set @a *user_excluded to TRUE when
  * @a local_abspath has status svn_wc__db_status_excluded. Set
@@ -943,15 +919,17 @@ svn_wc__get_excluded_subtrees(apr_hash_t
 
 /* Indicate in @a *is_modified whether the working copy has local
  * modifications, using context @a wc_ctx.
- * Use @a scratch_pool for temporary allocations.
  *
- * This function provides a subset of the functionality of
- * svn_wc_revision_status2() and is more efficient if the caller
- * doesn't need all information returned by svn_wc_revision_status2(). */
+ * If IGNORE_UNVERSIONED, unversioned paths inside the tree rooted by
+ * LOCAL_ABSPATH are not seen as a change, otherwise they are.
+ * (svn:ignored paths are always ignored)
+ *
+ * Use @a scratch_pool for temporary allocations. */
 svn_error_t *
 svn_wc__has_local_mods(svn_boolean_t *is_modified,
                        svn_wc_context_t *wc_ctx,
                        const char *local_abspath,
+                       svn_boolean_t ignore_unversioned,
                        svn_cancel_func_t cancel_func,
                        void *cancel_baton,
                        apr_pool_t *scratch_pool);
@@ -1259,6 +1237,44 @@ svn_wc__resolve_relative_external_url(co
                                       apr_pool_t *result_pool,
                                       apr_pool_t *scratch_pool);
 
+typedef enum svn_wc__external_description_format_t
+{
+  /* LOCALPATH [-r PEG] URL */
+  svn_wc__external_description_format_1 = 0,
+
+  /* [-r REV] URL[@PEG] LOCALPATH, introduced in Subversion 1.5 */
+  svn_wc__external_description_format_2
+} svn_wc__external_description_format_t;
+
+/* Additional information about what the external's parser has parsed. */
+typedef struct svn_wc__externals_parser_info_t
+{
+  /* The syntax format used by the external description. */
+  svn_wc__external_description_format_t format;
+
+  /* The string used for defining the operative revision, i.e.
+     "-rN", "-rHEAD", or "-r{DATE}".
+     NULL if revision was not given. */
+  const char *rev_str;
+
+  /* The string used for defining the peg revision (equals rev_str in
+     format 1, is "@N", or "@HEAD" or "@{DATE}" in format 2).
+     NULL if peg revision was not given. */
+  const char *peg_rev_str;
+
+} svn_wc__externals_parser_info_t;
+
+/* Like svn_wc_parse_externals_description3() but returns an additional array
+ * with elements of type svn_wc__externals_parser_info_t in @a *parser_infos_p.
+ * @a parser_infos_p may be NULL if not required by the caller.
+ */
+svn_error_t *
+svn_wc__parse_externals_description(apr_array_header_t **externals_p,
+                                    apr_array_header_t **parser_infos_p,
+                                    const char *defining_directory,
+                                    const char *desc,
+                                    svn_boolean_t canonicalize_url,
+                                    apr_pool_t *pool);
 
 /**
  * Set @a *editor and @a *edit_baton to an editor that generates
@@ -1816,7 +1832,7 @@ svn_wc__acquire_write_lock_for_resolve(c
  * If ROOT_RELPATH is not NULL, set *ROOT_RELPATH to the target of the diff
  * within the diff namespace. ("" or a single path component).
  *
- * If ROOT_IS_FILE is NOT NULL set it 
+ * If ROOT_IS_FILE is NOT NULL set it
  * the first processor call. (The anchor is LOCAL_ABSPATH or an ancestor of it)
  */
 svn_error_t *

Modified: subversion/branches/fsx-1.10/subversion/include/svn_auth.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/svn_auth.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/svn_auth.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/svn_auth.h Sun Jun 14 20:58:10 2015
@@ -884,7 +884,7 @@ svn_auth_get_platform_specific_client_pr
  * @note An administrative password reset may invalidate the account's
  * secret key. This function will detect that situation and behave as
  * if the password were not cached at all.
- * @deprecated Provided for backwards compatibility with the 1.8 API.  Use 
+ * @deprecated Provided for backwards compatibility with the 1.8 API.  Use
  * svn_auth_get_platform_specific_provider with provider_name of "windows"
  * and provider_type of "simple".
  */

Modified: subversion/branches/fsx-1.10/subversion/include/svn_cache_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/svn_cache_config.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/svn_cache_config.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/svn_cache_config.h Sun Jun 14 20:58:10 2015
@@ -43,7 +43,7 @@ extern "C" {
 
    @note Do not extend this data structure as this would break binary
          compatibility.
-   
+
    @since New in 1.7.
  */
 typedef struct svn_cache_config_t

Modified: subversion/branches/fsx-1.10/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/svn_client.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/svn_client.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/svn_client.h Sun Jun 14 20:58:10 2015
@@ -2724,7 +2724,7 @@ svn_client_status(svn_revnum_t *result_r
  *
  * If @a include_merged_revisions is set, log information for revisions
  * which have been merged to @a targets will also be returned.
- * 
+ *
  * If @a revprops is NULL, retrieve all revision properties; else, retrieve
  * only the revision properties named by the (const char *) array elements
  * (i.e. retrieve none if the array is empty).
@@ -4109,6 +4109,13 @@ svn_client_mergeinfo_log_eligible(const
  * If @a remove_ignored_items is @c TRUE, remove ignored unversioned items
  * in @a dir after successful working copy cleanup.
  *
+ * If @a fix_recorded_timestamps is @c TRUE, this function fixes recorded
+ * timestamps for unmodified files in the working copy, reducing comparision
+ * time on future checks.
+ *
+ * If @a vacuum_pristines is @c TRUE, and @a dir_abspath points to the working
+ * copy root unreferenced files in the pristine store are removed.
+ *
  * When asked to remove unversioned or ignored items, and the working copy
  * is already locked, return #SVN_ERR_WC_LOCKED. This prevents accidental
  * working copy corruption in case users run the cleanup operation to
@@ -4349,6 +4356,112 @@ svn_client_revert(const apr_array_header
 /** @} */
 
 /**
+ * @defgroup Conflicts Dealing with conflicted paths.
+ *
+ * @{
+ */
+
+/**
+ * Return the absolute path to the conflicted working copy node described
+ * by @a conflict.
+ *
+ * @since New in 1.10. 
+ */
+const char *
+svn_client_conflict_get_local_abspath(
+  const svn_wc_conflict_description2_t *conflict);
+
+/**
+ * Return the operation during which the conflict described by @a
+ * conflict was recorded.
+ *
+ * @since New in 1.10. 
+ */
+svn_wc_operation_t
+svn_client_conflict_get_operation(
+  const svn_wc_conflict_description2_t *conflict);
+
+/**
+ * Return the action an update, switch, or merge operation attempted to
+ * perform on the working copy node described by @a conflict.
+ * 
+ * @since New in 1.10. 
+ */
+svn_wc_conflict_action_t
+svn_client_conflict_get_incoming_change(
+  const svn_wc_conflict_description2_t *conflict);
+
+/**
+ * Return the reason why the attempted action performed by an update, switch,
+ * or merge operation conflicted with the state of the node in the working copy.
+ *
+ * During update and switch operations this local change is part of uncommitted
+ * modifications in the working copy. During merge operations it may
+ * additionally be part of the history of the merge target branch, anywhere
+ * between the common ancestor revision and the working copy revision.
+ * 
+ * @since New in 1.10. 
+ */
+svn_wc_conflict_reason_t
+svn_client_conflict_get_local_change(
+  const svn_wc_conflict_description2_t *conflict);
+
+/**
+ * Accessor functions for svn_wc_conflict_description2_t. This is a temporary
+ * API for eventually replacing svn_wc_conflict_description2_t with an opaque
+ * type and providing improved APIs for conflict resolution.
+ * 
+ * @since New in 1.10. 
+ */
+
+#define svn_client_conflict_get_node_kind(conflict) \
+  ((conflict)->node_kind)
+
+#define svn_client_conflict_get_kind(conflict) \
+  ((conflict)->kind)
+
+#define svn_client_conflict_get_property_name(conflict) \
+  ((conflict)->property_name)
+
+#define svn_client_conflict_get_is_binary(conflict) \
+  ((conflict)->is_binary)
+
+#define svn_client_conflict_get_mime_type(conflict) \
+  ((conflict)->mime_type)
+
+#define svn_client_conflict_get_base_abspath(conflict) \
+  ((conflict)->base_abspath)
+
+#define svn_client_conflict_get_their_abspath(conflict) \
+  ((conflict)->their_abspath)
+
+#define svn_client_conflict_get_my_abspath(conflict) \
+  ((conflict)->my_abspath)
+
+#define svn_client_conflict_get_merged_file(conflict) \
+  ((conflict)->merged_file)
+
+#define svn_client_conflict_get_src_left_version(conflict) \
+  ((conflict)->src_left_version)
+
+#define svn_client_conflict_get_src_right_version(conflict) \
+  ((conflict)->src_right_version)
+
+#define svn_client_conflict_get_prop_reject_abspath(conflict) \
+  ((conflict)->prop_reject_abspath)
+
+#define svn_client_conflict_get_prop_value_working(conflict) \
+  ((conflict)->prop_value_working)
+
+#define svn_client_conflict_get_prop_value_incoming_old(conflict) \
+  ((conflict)->prop_value_incoming_old)
+
+#define svn_client_conflict_get_prop_value_incoming_new(conflict) \
+  ((conflict)->prop_value_incoming_new)
+
+/** @} */
+
+/**
  * @defgroup Resolved Mark conflicted paths as resolved.
  *
  * @{
@@ -4492,6 +4605,41 @@ typedef struct svn_client_copy_source_t
  * If @a ignore_externals is set, don't process externals definitions
  * as part of this operation.
  *
+ * If @a metadata_only is @c TRUE and copying a file in a working copy,
+ * everything in the metadata is updated as if the node is moved, but the
+ * actual disk copy operation is not performed. This feature is useful for
+ * clients that want to keep the working copy in sync while the actual working
+ * copy is updated by some other task.
+ *
+ * If @a pin_externals is set, pin URLs in copied externals definitions
+ * to their current revision unless they were already pinned to a
+ * particular revision. A pinned external uses a URL which points at a
+ * fixed revision, rather than the HEAD revision. Externals in the copy
+ * destination are pinned to either a working copy base revision or the
+ * HEAD revision of a repository (as of the time the copy operation is
+ * performed), depending on the type of the copy source:
+ <pre>
+    copy source: working copy (WC)       REPOS
+   ------------+------------------------+---------------------------+
+    copy    WC | external's WC BASE rev | external's repos HEAD rev |
+    dest:      |------------------------+---------------------------+
+         REPOS | external's WC BASE rev | external's repos HEAD rev |
+   ------------+------------------------+---------------------------+
+ </pre>
+ * If the copy source is a working copy, then all externals must be checked
+ * out, be at a single-revision, contain no local modifications, and contain
+ * no switched subtrees. Else, #SVN_ERR_WC_PATH_UNEXPECTED_STATUS is returned.
+ *
+ * If non-NULL, @a externals_to_pin restricts pinning to a subset of externals.
+ * It is a hash table keyed by either a local absolute path or a URL at which
+ * an svn:externals property is set. The hash table contains apr_array_header_t*
+ * elements as returned by svn_wc_parse_externals_description3(). These arrays
+ * contain elements of type svn_wc_external_item2_t*, each of which corresponds
+ * to a single line of an svn:externals definition. Externals corresponding to
+ * these items will be pinned, other externals will not be pinned.
+ * If @a externals_to_pin is @c NULL then all externals are pinned.
+ * If @a pin_externals is @c FALSE then @a externals_to_pin is ignored.
+ *
  * If non-NULL, @a revprop_table is a hash table holding additional,
  * custom revision properties (<tt>const char *</tt> names mapped to
  * <tt>svn_string_t *</tt> values) to be set on the new revision in
@@ -4510,8 +4658,32 @@ typedef struct svn_client_copy_source_t
  * @a commit_callback with @a commit_baton and a #svn_commit_info_t for
  * the commit.
  *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_client_copy7(const apr_array_header_t *sources,
+                 const char *dst_path,
+                 svn_boolean_t copy_as_child,
+                 svn_boolean_t make_parents,
+                 svn_boolean_t ignore_externals,
+                 svn_boolean_t metadata_only,
+                 svn_boolean_t pin_externals,
+                 const apr_hash_t *externals_to_pin,
+                 const apr_hash_t *revprop_table,
+                 svn_commit_callback2_t commit_callback,
+                 void *commit_baton,
+                 svn_client_ctx_t *ctx,
+                 apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_copy7(), but doesn't support meta_data_only
+ * and cannot pin externals.
+ * 
+ *
  * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with the 1.8 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_client_copy6(const apr_array_header_t *sources,
                  const char *dst_path,

Modified: subversion/branches/fsx-1.10/subversion/include/svn_cmdline.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/svn_cmdline.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/svn_cmdline.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/svn_cmdline.h Sun Jun 14 20:58:10 2015
@@ -342,7 +342,7 @@ svn_cmdline_auth_plaintext_passphrase_pr
  *
  * @a trust_server_cert_other_failure: If @c TRUE, accept certificates
  * even if any other verification failure than the above occured.
- * 
+ *
  * @a cfg is the @c SVN_CONFIG_CATEGORY_CONFIG configuration, and
  * @a cancel_func and @a cancel_baton control the cancellation of the
  * prompting providers that are initialized.
@@ -370,10 +370,11 @@ svn_cmdline_create_auth_baton2(svn_auth_
 
 /* Like svn_cmdline_create_auth_baton2, but with only one trust_server_cert
  * option which corresponds to trust_server_cert_unknown_ca.
- * 
+ *
  * @deprecated Provided for backward compatibility with the 1.8 API.
  * @since New in 1.6.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_cmdline_create_auth_baton(svn_auth_baton_t **ab,
                               svn_boolean_t non_interactive,

Modified: subversion/branches/fsx-1.10/subversion/include/svn_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/svn_config.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/svn_config.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/svn_config.h Sun Jun 14 20:58:10 2015
@@ -63,6 +63,12 @@ typedef struct svn_config_t svn_config_t
  * @{
  */
 
+/* If you add a new SVN_CONFIG_* category/section/option macro to this group,
+ * you have to re-run gen-make.py manually.
+ *
+ * ### This should be fixed in the build system; see issue #4581.
+ */
+
  /* This list of #defines is intentionally presented as a nested list
     that matches the in-config hierarchy.  */
 
@@ -782,7 +788,8 @@ svn_config_write_auth_data(apr_hash_t *h
  * fully purged) to allow perusal and selective removal of credentials.
  *
  * @a cred_kind and @a realmstring specify the key of the credential.
- * @a hash contains the hash data associated with the record.
+ * @a hash contains the hash data associated with the record. @a walk_baton
+ * is the baton passed to svn_config_walk_auth_data().
  *
  * Before returning set @a *delete_cred to TRUE to remove the credential from
  * the cache; leave @a *delete_cred unchanged or set it to FALSE to keep the

Modified: subversion/branches/fsx-1.10/subversion/include/svn_diff.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/svn_diff.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/svn_diff.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/svn_diff.h Sun Jun 14 20:58:10 2015
@@ -412,6 +412,9 @@ typedef enum svn_diff_conflict_display_s
 /** Given a vtable of @a output_fns/@a output_baton for consuming
  * differences, output the differences in @a diff.
  *
+ * If not @c NULL, call @a cancel_func with @a cancel_baton once or multiple
+ * times while processing larger diffs.
+ *
  * @since New in 1.9.
  */
 svn_error_t *
@@ -628,6 +631,9 @@ svn_diff_file_diff4(svn_diff_t **diff,
  * will be used in the generated diff output. Otherwise the legacy compile
  * time default will be used.
  *
+ * If not @c NULL, call @a cancel_func with @a cancel_baton once or multiple
+ * times while processing larger diffs.
+ *
  * @since New in 1.9.
  */
 svn_error_t *
@@ -645,7 +651,7 @@ svn_diff_file_output_unified4(svn_stream
                               void *cancel_baton,
                               apr_pool_t *scratch_pool);
 
-/** Similar to svn_diff_file_output_unified3(), but without cancel
+/** Similar to svn_diff_file_output_unified4(), but without cancel
  * support and with @a context_size set to -1.
  *
  * @since New in 1.5.
@@ -705,7 +711,11 @@ svn_diff_file_output_unified(svn_stream_
  * @a conflict_latest to be displayed as conflict markers in the output.
  * If @a conflict_original, @a conflict_modified, @a conflict_latest and/or
  * @a conflict_separator is @c NULL, a default marker will be displayed.
- * @a conflict_style dictates how conflicts are displayed.
+ * @a conflict_style dictates how conflicts are displayed. 
+ * Uses @a scratch_pool for temporary allocations.
+ *
+ * If not @c NULL, call @a cancel_func with @a cancel_baton once or multiple
+ * times while processing larger diffs.
  *
  * @since New in 1.9.
  */
@@ -722,7 +732,7 @@ svn_diff_file_output_merge3(svn_stream_t
                             svn_diff_conflict_display_style_t conflict_style,
                             svn_cancel_func_t cancel_func,
                             void *cancel_baton,
-                            apr_pool_t *pool);
+                            apr_pool_t *scratch_pool);
 
 /** Similar to svn_diff_file_output_merge3, but without cancel support.
  *
@@ -782,7 +792,10 @@ svn_diff_file_output_merge(svn_stream_t
  * Either @a original or @a latest may be NULL to describe that the version
  * didn't exist.
  *
- * Writes the ouput to @a output_stream.
+ * Writes the output to @a output_stream.
+ *
+ * If not @c NULL, call @a cancel_func with @a cancel_baton once or multiple
+ * times while processing larger diffs.
  *
  * @since New in 1.9.
  */
@@ -858,6 +871,11 @@ svn_diff_mem_string_diff4(svn_diff_t **d
  * will be used in the generated diff output. Otherwise the legacy compile
  * time default will be used.
  *
+ * If not @c NULL, call @a cancel_func with @a cancel_baton once or multiple
+ * times while processing larger diffs.
+ *
+ * Uses @a scratch_pool for temporary allocations.
+ *
  * @since New in 1.9
  */
 svn_error_t *
@@ -873,7 +891,7 @@ svn_diff_mem_string_output_unified3(svn_
                                     int context_size,
                                     svn_cancel_func_t cancel_func,
                                     void *cancel_baton,
-                                    apr_pool_t *pool);
+                                    apr_pool_t *scratch_pool);
 
 /** Similar to svn_diff_mem_string_output_unified3() but without
  * cancel support and with @a context_size set to -1.
@@ -924,6 +942,11 @@ svn_diff_mem_string_output_unified(svn_s
  *
  * @a conflict_style dictates how conflicts are displayed.
  *
+ * If not @c NULL, call @a cancel_func with @a cancel_baton once or multiple
+ * times while processing larger diffs.
+ *
+ * Uses @a scratch_pool for temporary allocations.
+ *
  * @since New in 1.9.
  */
 svn_error_t *
@@ -939,7 +962,7 @@ svn_diff_mem_string_output_merge3(svn_st
                                   svn_diff_conflict_display_style_t style,
                                   svn_cancel_func_t cancel_func,
                                   void *cancel_baton,
-                                  apr_pool_t *pool);
+                                  apr_pool_t *scratch_pool);
 
 /** Similar to svn_diff_mem_string_output_merge2(), but without cancel support.
  *
@@ -1056,7 +1079,7 @@ typedef struct svn_diff_hunk_t svn_diff_
 /**
  * Allocate @a *stringbuf in @a result_pool, and read into it one line
  * of the diff text of @a hunk. The hunk header is not returned only the
- * unidiff data lines (starting with '+', '-', or ' ') are returned.  
+ * unidiff data lines (starting with '+', '-', or ' ') are returned.
  * If the @a hunk is being interpreted in reverse (i.e. the reverse
  * parameter of svn_diff_parse_next_patch() was @c TRUE), the diff
  * text will be returned in reversed form.
@@ -1067,7 +1090,7 @@ typedef struct svn_diff_hunk_t svn_diff_
  * Temporary allocations will be performed in @a scratch_pool.
  *
  * @note The hunk header information can be retrieved with the following
- * functions: 
+ * functions:
  * @see svn_diff_hunk_get_original_start()
  * @see svn_diff_hunk_get_original_length()
  * @see svn_diff_hunk_get_modified_start()

Modified: subversion/branches/fsx-1.10/subversion/include/svn_dirent_uri.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/svn_dirent_uri.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/svn_dirent_uri.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/svn_dirent_uri.h Sun Jun 14 20:58:10 2015
@@ -363,9 +363,9 @@ svn_relpath_dirname(const char *relpath,
  * @since New in 1.9.
  */
 const char *
-svn_relpath_limit(const char *relpath,
-                  int max_components,
-                  apr_pool_t *result_pool);
+svn_relpath_prefix(const char *relpath,
+                   int max_components,
+                   apr_pool_t *result_pool);
 
 
 /** Divide the canonicalized @a uri into a uri @a *dirpath and a

Modified: subversion/branches/fsx-1.10/subversion/include/svn_error.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/svn_error.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/svn_error.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/svn_error.h Sun Jun 14 20:58:10 2015
@@ -165,14 +165,25 @@ svn_error_wrap_apr(apr_status_t status,
                    ...)
        __attribute__((format(printf, 2, 3)));
 
-/** A quick n' easy way to create a wrapped exception with your own
- * message, before throwing it up the stack.  (It uses all of the
- * @a child's fields.)
+/** If @a child is SVN_NO_ERROR, return SVN_NO_ERROR.
+ * Else, prepend a new error to the error chain of @a child. The new error
+ * uses @a new_msg as error message but all other error attributes (such
+ * as the error code) are copied from @a child.
  */
 svn_error_t *
 svn_error_quick_wrap(svn_error_t *child,
                      const char *new_msg);
 
+/** Like svn_error_quick_wrap(), but with format string support.
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_error_quick_wrapf(svn_error_t *child,
+                      const char *fmt,
+                      ...)
+       __attribute__((format(printf, 2, 3)));
+
 /** Compose two errors, returning the composition as a brand new error
  * and consuming the original errors.  Either or both of @a err1 and
  * @a err2 may be @c SVN_NO_ERROR.  If both are not @c SVN_NO_ERROR,
@@ -256,6 +267,8 @@ svn_error__locate(const char *file,
   (svn_error__locate(__FILE__,__LINE__), (svn_error_wrap_apr))
 #define svn_error_quick_wrap \
   (svn_error__locate(__FILE__,__LINE__), (svn_error_quick_wrap))
+#define svn_error_quick_wrapf \
+  (svn_error__locate(__FILE__,__LINE__), (svn_error_quick_wrapf))
 #endif
 
 
@@ -440,7 +453,10 @@ svn_error_t *svn_error_purge_tracing(svn
    err->apr_err == SVN_ERR_FS_NOT_FOUND           ||        \
    err->apr_err == SVN_ERR_FS_OUT_OF_DATE         ||        \
    err->apr_err == SVN_ERR_FS_BAD_LOCK_TOKEN      ||        \
-   err->apr_err == SVN_ERR_REPOS_HOOK_FAILURE)
+   err->apr_err == SVN_ERR_REPOS_HOOK_FAILURE     ||        \
+   err->apr_err == SVN_ERR_FS_NO_SUCH_REVISION    ||        \
+   err->apr_err == SVN_ERR_FS_OUT_OF_DATE         ||        \
+   err->apr_err == SVN_ERR_FS_NOT_FILE)
 
 /**
  * Return TRUE if @a err is an error specifically related to unlocking

Modified: subversion/branches/fsx-1.10/subversion/include/svn_error_codes.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsx-1.10/subversion/include/svn_error_codes.h?rev=1685464&r1=1685463&r2=1685464&view=diff
==============================================================================
--- subversion/branches/fsx-1.10/subversion/include/svn_error_codes.h (original)
+++ subversion/branches/fsx-1.10/subversion/include/svn_error_codes.h Sun Jun 14 20:58:10 2015
@@ -923,9 +923,9 @@ SVN_ERROR_START
              "Repository upgrade is not supported")
 
   /** @since New in 1.9. */
-  SVN_ERRDEF(SVN_ERR_REPOS_CORRUPTED,
+  SVN_ERRDEF(SVN_ERR_REPOS_VERIFY_FAILED,
              SVN_ERR_REPOS_CATEGORY_START + 11,
-             "Repository is corrupt")
+             "Repository verification failed")
 
   /* generic RA errors */
 
@@ -1066,6 +1066,11 @@ SVN_ERROR_START
              SVN_ERR_RA_DAV_CATEGORY_START + 14,
              "The server state conflicts with the requested preconditions")
 
+  /** @since New in 1.9 */
+  SVN_ERRDEF(SVN_ERR_RA_DAV_METHOD_NOT_ALLOWED,
+             SVN_ERR_RA_DAV_CATEGORY_START + 15,
+             "The URL doesn't allow the requested method")
+
   /* ra_local errors */
 
   SVN_ERRDEF(SVN_ERR_RA_LOCAL_REPOS_NOT_FOUND,
@@ -1590,11 +1595,14 @@ SVN_ERROR_START
              "Diff data source modified unexpectedly")
 
   /* libsvn_ra_serf errors */
-  /** @since New in 1.5. */
+  /** @since New in 1.5.
+      @deprecated SSPI now handled by serf rather than libsvn_ra_serf. */
   SVN_ERRDEF(SVN_ERR_RA_SERF_SSPI_INITIALISATION_FAILED,
              SVN_ERR_RA_SERF_CATEGORY_START + 0,
              "Initialization of SSPI library failed")
-  /** @since New in 1.5. */
+  /** @since New in 1.5.
+      @deprecated Certificate verification now handled by serf rather
+                  than libsvn_ra_serf. */
   SVN_ERRDEF(SVN_ERR_RA_SERF_SSL_CERT_UNTRUSTED,
              SVN_ERR_RA_SERF_CATEGORY_START + 1,
              "Server SSL certificate untrusted")



Mime
View raw message