You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/07/25 17:29:53 UTC
svn commit: r1507012 [5/11] - in /subversion/branches/fsfs-format7: ./
build/ build/ac-macros/ build/generator/ build/generator/swig/
build/generator/templates/ contrib/client-side/emacs/ doc/programmer/
notes/http-and-webdav/ subversion/ subversion/bi...
Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h Thu Jul 25 15:29:49 2013
@@ -22,8 +22,14 @@
#ifndef SVN_SWIG_SWIGUTIL_RB_H
#define SVN_SWIG_SWIGUTIL_RB_H
+/* Windows hack: Allow overriding some <ruby.h> defaults */
+#include "swigutil_rb__pre_ruby.h"
#include <ruby.h>
+#ifdef HAVE_RUBY_REGEX_H
+#include <ruby/regex.h>
+#else
#include <regex.h>
+#endif
#if SIZEOF_VOIDP == SIZEOF_LONG
# define PTR2NUM(x) (ULONG2NUM((unsigned long)(x)))
@@ -45,17 +51,6 @@
#include "svn_client.h"
#include "svn_repos.h"
-/* Define DLL export magic on Windows. */
-#ifdef WIN32
-# ifdef SVN_SWIG_SWIGUTIL_RB_C
-# define SVN_RB_SWIG_SWIGUTIL_EXPORT __declspec(dllexport)
-# else
-# define SVN_RB_SWIG_SWIGUTIL_EXPORT __declspec(dllimport)
-# endif
-#else
-# define SVN_RB_SWIG_SWIGUTIL_EXPORT
-#endif
-
/* Ruby <=1.8.5 compatibility */
#ifndef RARRAY_LEN
#define RARRAY_LEN(x) RARRAY(x)->len
@@ -89,152 +84,98 @@ typedef struct apr_pool_wrapper_t
apr_array_header_t *children;
} apr_pool_wrapper_t;
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_initialize(void);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_pool_t *svn_swig_rb_pool(void);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_allocator_t *svn_swig_rb_allocator(void);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_svn_delta_editor(void);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_svn_delta_text_delta_window_handler(void);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_raise_svn_fs_already_close(void);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_raise_svn_repos_already_close(void);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_svn_error_new(VALUE code, VALUE message,
VALUE file, VALUE line, VALUE child);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_svn_error_to_rb_error(svn_error_t *error);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_handle_svn_error(svn_error_t *error);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void *svn_swig_rb_to_swig_type(VALUE value, const void *ctx, apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_from_swig_type(void *value, void *ctx);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_depth_t svn_swig_rb_to_depth(VALUE value);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_mergeinfo_inheritance_t svn_swig_rb_to_mergeinfo_inheritance(VALUE value);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_svn_date_string_to_time(const char *date);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_hash_to_hash_string(apr_hash_t *hash);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_hash_to_hash_svn_string(apr_hash_t *hash);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_hash_to_hash_swig_type(apr_hash_t *hash,
const char *type_name);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_hash_to_hash_merge_range(apr_hash_t *hash);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_hash_to_hash_merge_range_hash(apr_hash_t *hash);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_prop_hash_to_hash(apr_hash_t *prop_hash);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_revnum_key_hash_to_hash_string(apr_hash_t *hash);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_array_to_array_string(const apr_array_header_t *ary);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_array_to_array_svn_string(const apr_array_header_t *ary);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_array_to_array_svn_rev(const apr_array_header_t *ary);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_array_to_array_proplist_item(const apr_array_header_t *ary);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_array_to_array_external_item2(const apr_array_header_t *ary);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_array_to_array_merge_range(const apr_array_header_t *ary);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_apr_array_to_array_auth_provider_object(const apr_array_header_t *ary);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_prop_apr_array_to_hash_prop(const apr_array_header_t *ary);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_hash_t *svn_swig_rb_hash_to_apr_hash_string(VALUE hash, apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_hash_t *svn_swig_rb_hash_to_apr_hash_svn_string(VALUE hash,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_hash_t *svn_swig_rb_hash_to_apr_hash_swig_type(VALUE hash,
const char *typename,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_hash_t *svn_swig_rb_hash_to_apr_hash_revnum(VALUE hash,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_hash_t *svn_swig_rb_hash_to_apr_hash_merge_range(VALUE hash,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_array_header_t *svn_swig_rb_strings_to_apr_array(VALUE strings,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_array_header_t *
svn_swig_rb_array_to_auth_provider_object_apr_array(VALUE array,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_array_header_t *svn_swig_rb_array_to_apr_array_revnum(VALUE array,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_array_header_t *svn_swig_rb_array_to_apr_array_merge_range(VALUE array,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_array_header_t *svn_swig_rb_array_to_apr_array_copy_source(VALUE array,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_array_header_t *svn_swig_rb_array_to_apr_array_revision_range(VALUE array,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_array_header_t *svn_swig_rb_to_apr_array_prop(VALUE array_or_hash,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_array_header_t *svn_swig_rb_to_apr_array_row_prop(VALUE array_or_hash,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_get_pool(int argc, VALUE *argv, VALUE self, VALUE *rb_pool, apr_pool_t **pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_boolean_t svn_swig_rb_set_pool(VALUE target, VALUE pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_set_pool_for_no_swig_type(VALUE target, VALUE pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_push_pool(VALUE pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_pop_pool(VALUE pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_destroy_pool(VALUE pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_destroy_internal_pool(VALUE pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_make_delta_editor(svn_delta_editor_t **editor,
void **edit_baton,
VALUE rb_editor,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_make_baton(VALUE proc, VALUE pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_set_baton(VALUE target, VALUE baton);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_log_receiver(void *baton,
apr_hash_t *changed_paths,
svn_revnum_t revision,
@@ -243,19 +184,16 @@ svn_error_t *svn_swig_rb_log_receiver(vo
const char *message,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_log_entry_receiver(void *baton,
svn_log_entry_t *entry,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_repos_authz_func(svn_boolean_t *allowed,
svn_fs_root_t *root,
const char *path,
void *baton,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_repos_authz_callback(svn_repos_authz_access_t required,
svn_boolean_t *allowed,
svn_fs_root_t *root,
@@ -264,7 +202,6 @@ svn_error_t *svn_swig_rb_repos_authz_cal
apr_pool_t *pool);
/* Implements the svn_client_get_commit_log3_t API. */
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_get_commit_log_func(const char **log_msg,
const char **tmp_file,
const apr_array_header_t *
@@ -272,76 +209,60 @@ svn_error_t *svn_swig_rb_get_commit_log_
void *baton,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_notify_func2(void *baton,
const svn_wc_notify_t *notify,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_conflict_resolver_func
(svn_wc_conflict_result_t **result,
const svn_wc_conflict_description_t *description,
void *baton,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_commit_callback(svn_revnum_t new_revision,
const char *date,
const char *author,
void *baton);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_commit_callback2(const svn_commit_info_t *commit_info,
void *baton,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_cancel_func(void *cancel_baton);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_info_receiver(void *baton,
const char *path,
const svn_info_t *info,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_boolean_t svn_swig_rb_config_enumerator(const char *name,
const char *value,
void *baton,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_boolean_t svn_swig_rb_config_section_enumerator(const char *name,
void *baton,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_delta_path_driver_cb_func(void **dir_baton,
void *parent_baton,
void *callback_baton,
const char *path,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_txdelta_window_handler(svn_txdelta_window_t *window,
void *baton);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_fs_warning_callback(void *baton, svn_error_t *err);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_fs_warning_callback_baton_register(VALUE baton,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_fs_get_locks_callback(void *baton,
svn_lock_t *lock,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_just_call(void *baton);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_setup_ra_callbacks(svn_ra_callbacks2_t **callbacks,
void **baton,
VALUE rb_callbacks,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_ra_lock_callback(void *baton,
const char *path,
svn_boolean_t do_lock,
@@ -349,7 +270,6 @@ svn_error_t *svn_swig_rb_ra_lock_callbac
svn_error_t *ra_err,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_ra_file_rev_handler(void *baton,
const char *path,
svn_revnum_t rev,
@@ -359,13 +279,11 @@ svn_error_t *svn_swig_rb_ra_file_rev_han
apr_array_header_t *prop_diffs,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_repos_history_func(void *baton,
const char *path,
svn_revnum_t revision,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_repos_file_rev_handler(void *baton,
const char *path,
svn_revnum_t rev,
@@ -375,7 +293,6 @@ svn_error_t *svn_swig_rb_repos_file_rev_
apr_array_header_t *prop_diffs,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_wc_relocation_validator3(void *baton,
const char *uuid,
const char *url,
@@ -384,14 +301,12 @@ svn_error_t *svn_swig_rb_wc_relocation_v
/* auth provider callbacks */
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t * svn_swig_rb_auth_gnome_keyring_unlock_prompt_func(
char **keyring_passwd,
const char *keyring_name,
void *baton,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_auth_simple_prompt_func(
svn_auth_cred_simple_t **cred,
void *baton,
@@ -400,7 +315,6 @@ svn_error_t *svn_swig_rb_auth_simple_pro
svn_boolean_t may_save,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_auth_username_prompt_func(
svn_auth_cred_username_t **cred,
void *baton,
@@ -408,7 +322,6 @@ svn_error_t *svn_swig_rb_auth_username_p
svn_boolean_t may_save,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_auth_ssl_server_trust_prompt_func(
svn_auth_cred_ssl_server_trust_t **cred,
void *baton,
@@ -418,7 +331,6 @@ svn_error_t *svn_swig_rb_auth_ssl_server
svn_boolean_t may_save,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_auth_ssl_client_cert_prompt_func(
svn_auth_cred_ssl_client_cert_t **cred,
void *baton,
@@ -426,7 +338,6 @@ svn_error_t *svn_swig_rb_auth_ssl_client
svn_boolean_t may_save,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_auth_ssl_client_cert_pw_prompt_func(
svn_auth_cred_ssl_client_cert_pw_t **cred,
void *baton,
@@ -434,27 +345,20 @@ svn_error_t *svn_swig_rb_auth_ssl_client
svn_boolean_t may_save,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
apr_file_t *svn_swig_rb_make_file(VALUE file, apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_stream_t *svn_swig_rb_make_stream(VALUE io);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_filename_to_temp_file(const char *file_name);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_set_revision(svn_opt_revision_t *rev, VALUE value);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_adjust_arg_for_client_ctx_and_pool(int *argc, VALUE **argv);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
void svn_swig_rb_wc_status_func(void *baton,
const char *path,
svn_wc_status2_t *status);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_client_blame_receiver_func(void *baton,
apr_int64_t line_no,
svn_revnum_t revision,
@@ -464,39 +368,27 @@ svn_error_t *svn_swig_rb_client_blame_re
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_wc_entry_callbacks2_t *svn_swig_rb_wc_entry_callbacks2(void);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_wc_diff_callbacks2_t *svn_swig_rb_wc_diff_callbacks2(void);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_make_txdelta_window_handler_wrapper(VALUE *rb_handler_pool,
apr_pool_t **handler_pool,
svn_txdelta_window_handler_t **handler,
void ***handler_baton);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_setup_txdelta_window_handler_wrapper(VALUE obj,
svn_txdelta_window_handler_t handler,
void *handler_baton);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
-svn_error_t *svn_swig_rb_invoke_txdelta_window_handler(VALUE window_handler,
- svn_txdelta_window_t *window,
- apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_invoke_txdelta_window_handler_wrapper(VALUE obj,
svn_txdelta_window_t *window,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
VALUE svn_swig_rb_txdelta_window_t_ops_get(svn_txdelta_window_t *window);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_client_diff_summarize_func(const svn_client_diff_summarize_t *diff,
void *baton,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_client_list_func(void *baton,
const char *path,
const svn_dirent_t *dirent,
@@ -504,20 +396,17 @@ svn_error_t *svn_swig_rb_client_list_fun
const char *abs_path,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_proplist_receiver(void *baton,
const char *path,
apr_hash_t *prop_hash,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_rb_changelist_receiver(void *baton,
const char *path,
const char *changelist,
apr_pool_t *pool);
-SVN_RB_SWIG_SWIGUTIL_EXPORT
-extern svn_ra_reporter3_t *svn_swig_rb_ra_reporter3;
+svn_ra_reporter3_t *svn_swig_rb_get_ra_reporter3();
#ifdef __cplusplus
}
Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/svn_delta.i
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/svn_delta.i?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/svn_delta.i (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/svn_delta.i Thu Jul 25 15:29:49 2013
@@ -63,6 +63,9 @@
*/
#ifdef SWIGPYTHON
+/* Make swig wrap this function for us, to allow making an editor in python
+ ### There must be a cleaner way to implement this?
+ ### Maybe follow Ruby by wrapping it where passing an editor? */
void svn_swig_py_make_editor(const svn_delta_editor_t **editor,
void **edit_baton,
PyObject *py_editor,
@@ -71,14 +74,8 @@ void svn_swig_py_make_editor(const svn_d
#ifdef SWIGPERL
%typemap(in) (const svn_delta_editor_t *EDITOR, void *BATON) {
- svn_delta_make_editor(&$1, &$2, $input, _global_pool);
+ svn_swig_pl_make_editor(&$1, &$2, $input, _global_pool);
}
-
-void svn_delta_wrap_window_handler(svn_txdelta_window_handler_t *handler,
- void **handler_baton,
- SV *callback,
- apr_pool_t *pool);
-
#endif
#ifdef SWIGRUBY
Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/svn_ra.i
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/svn_ra.i?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/svn_ra.i (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/svn_ra.i Thu Jul 25 15:29:49 2013
@@ -65,7 +65,7 @@
#ifdef SWIGPERL
/* FIXME: svn_ra_callbacks2_t ? */
%typemap(in) (const svn_ra_callbacks_t *callbacks, void *callback_baton) {
- svn_ra_make_callbacks(&$1, &$2, $input, _global_pool);
+ svn_swig_pl_make_callbacks(&$1, &$2, $input, _global_pool);
}
#endif
#ifdef SWIGRUBY
@@ -77,7 +77,7 @@
#ifdef SWIGPYTHON
%callback_typemap(const svn_ra_reporter2_t *reporter, void *report_baton,
- (svn_ra_reporter2_t *)&swig_py_ra_reporter2,
+ svn_swig_py_get_ra_reporter2(),
,
)
%callback_typemap(svn_location_segment_receiver_t receiver, void *receiver_baton,
@@ -90,7 +90,7 @@
%callback_typemap(const svn_ra_reporter3_t *reporter, void *report_baton,
,
,
- svn_swig_rb_ra_reporter3)
+ svn_swig_rb_get_ra_reporter3())
#endif
#ifndef SWIGPERL
Modified: subversion/branches/fsfs-format7/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/private/svn_client_private.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/private/svn_client_private.h Thu Jul 25 15:29:49 2013
@@ -283,6 +283,11 @@ svn_client__copy_foreign(const char *url
* The keys for the subtree mergeinfo are the repository root-relative
* paths of TARGET_PATH_OR_URL and/or its subtrees, regardless of whether
* TARGET_PATH_OR_URL is a URL or WC path.
+ *
+ * If RA_SESSION is not NULL, use it to obtain merge information instead of
+ * opening a new session. The session might be reparented after usage, so
+ * callers should reparent the session back to their original location if
+ * needed.
*/
svn_error_t *
svn_client__mergeinfo_log(svn_boolean_t finding_merged,
@@ -299,6 +304,7 @@ svn_client__mergeinfo_log(svn_boolean_t
svn_depth_t depth,
const apr_array_header_t *revprops,
svn_client_ctx_t *ctx,
+ svn_ra_session_t *ra_session,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
Modified: subversion/branches/fsfs-format7/subversion/include/private/svn_ra_svn_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/private/svn_ra_svn_private.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/private/svn_ra_svn_private.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/private/svn_ra_svn_private.h Thu Jul 25 15:29:49 2013
@@ -875,7 +875,7 @@ svn_ra_svn__write_data_log_entry(svn_ra_
const svn_string_t *message,
svn_boolean_t has_children,
svn_boolean_t invalid_revnum,
- int revprop_count);
+ unsigned revprop_count);
/**
* @}
Modified: subversion/branches/fsfs-format7/subversion/include/svn_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_config.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_config.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_config.h Thu Jul 25 15:29:49 2013
@@ -96,7 +96,7 @@ typedef struct svn_config_t svn_config_t
/** @since New in 1.8. */
#define SVN_CONFIG_OPTION_HTTP_MAX_CONNECTIONS "http-max-connections"
/** @since New in 1.9. */
-#define SVN_CONFIG_OPTION_BUSTED_PROXY "busted-proxy"
+#define SVN_CONFIG_OPTION_HTTP_CHUNKED_REQUESTS "http-chunked-requests"
#define SVN_CONFIG_CATEGORY_CONFIG "config"
#define SVN_CONFIG_SECTION_AUTH "auth"
@@ -725,7 +725,7 @@ svn_config_write_auth_data(apr_hash_t *h
*/
typedef svn_error_t *
(*svn_config_auth_walk_func_t)(svn_boolean_t *delete_cred,
- void *cleanup_baton,
+ void *walk_baton,
const char *cred_kind,
const char *realmstring,
apr_hash_t *hash,
Modified: subversion/branches/fsfs-format7/subversion/include/svn_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_fs.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_fs.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_fs.h Thu Jul 25 15:29:49 2013
@@ -1035,6 +1035,19 @@ svn_fs_begin_txn(svn_fs_txn_t **txn_p,
* ### conflict string
* ### *new_rev will always be initialized to SVN_INVALID_REVNUM, or
* ### to a valid, committed revision number
+ *
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_fs_commit_txn2(const char **conflict_p,
+ svn_revnum_t *new_rev,
+ svn_fs_txn_t *txn,
+ svn_boolean_t set_timestamp,
+ apr_pool_t *pool);
+
+/*
+ * Same as svn_fs_commit_txn2(), but with @a set_timestamp
+ * always set to @c TRUE.
*/
svn_error_t *
svn_fs_commit_txn(const char **conflict_p,
Modified: subversion/branches/fsfs-format7/subversion/include/svn_io.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_io.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_io.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_io.h Thu Jul 25 15:29:49 2013
@@ -2086,11 +2086,11 @@ svn_io_file_seek(apr_file_t *file,
apr_off_t *offset,
apr_pool_t *pool);
-/** Set the file pointer of @a file to @a offset. In contrast to
- * #svn_io_file_seek, this function will attempt to resize the internal
- * data buffer to @a block_size bytes and to read data aligned to multiples
- * of that value. The beginning of the block will be returned in
- * @a buffer_start, if that is not NULL.
+/** Set the file pointer of the #APR_BUFFERED @a file to @a offset. In
+ * contrast to #svn_io_file_seek, this function will attempt to resize the
+ * internal data buffer to @a block_size bytes and to read data aligned to
+ * multiples of that value. The beginning of the block will be returned
+ * in @a buffer_start, if that is not NULL.
* Uses @a pool for temporary allocations.
*
* @note Due to limitations of the APR API, in particular pre-1.3 APR,
@@ -2098,6 +2098,8 @@ svn_io_file_seek(apr_file_t *file,
* function on @a file, you are, however, virtually guaranteed to get at
* least 4kByte alignments for all reads.
*
+ * @note Calling this for non-buffered files is legal but inefficient.
+ *
* @since New in 1.9
*/
svn_error_t *
Modified: subversion/branches/fsfs-format7/subversion/include/svn_version.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_version.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_version.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_version.h Thu Jul 25 15:29:49 2013
@@ -192,6 +192,8 @@ struct svn_version_t
* unreleased library. A development client is always compatible with
* a previous released library.
*
+ * @note Implements the #svn_ver_check_list2.@a comparator interface.
+ *
* @since New in 1.1.
*/
svn_boolean_t
@@ -201,6 +203,8 @@ svn_ver_compatible(const svn_version_t *
/**
* Check if @a my_version and @a lib_version encode the same version number.
*
+ * @note Implements the #svn_ver_check_list2.@a comparator interface.
+ *
* @since New in 1.2.
*/
svn_boolean_t
@@ -228,10 +232,31 @@ typedef struct svn_version_checklist_t
* my_version is compatible with each entry in @a checklist. @a
* checklist must end with an entry whose label is @c NULL.
*
- * @see svn_ver_compatible()
+ * @a my_version is considered to be compatible with a version in @a checklist
+ * if @a comparator returns #TRUE when called with @a my_version as the first
+ * parammeter and the @a checklist version as the second parameter.
+ *
+ * @see svn_ver_compatible(), svn_ver_equal()
+ *
+ * @note Subversion's own code invariably uses svn_ver_equal() as @a comparator,
+ * since the cmdline tools sometimes use non-public APIs (such as utility
+ * functions that haven't been promoted to svn_cmdline.h). Third-party code
+ * SHOULD use svn_ver_compatible() as @a comparator.
*
- * @since New in 1.1.
+ * @since New in 1.9.
+ */
+svn_error_t *
+svn_ver_check_list2(const svn_version_t *my_version,
+ const svn_version_checklist_t *checklist,
+ svn_boolean_t (*comparator)(const svn_version_t *,
+ const svn_version_t *));
+
+/** Similar to svn_ver_check_list2(), with @a comparator set to
+ * #svn_ver_compatible.
+ *
+ * @deprecated Provided for backward compatibility with 1.8 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_ver_check_list(const svn_version_t *my_version,
const svn_version_checklist_t *checklist);
Modified: subversion/branches/fsfs-format7/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/include/svn_wc.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/include/svn_wc.h (original)
+++ subversion/branches/fsfs-format7/subversion/include/svn_wc.h Thu Jul 25 15:29:49 2013
@@ -1261,6 +1261,11 @@ typedef enum svn_wc_notify_action_t
* @since New in 1.9. */
svn_wc_notify_cleanup_external,
+ /** The operation failed because the operation (E.g. commit) is only valid
+ * if the operation includes this path.
+ * @since New in 1.9. */
+ svn_wc_notify_failed_requires_target
+
} svn_wc_notify_action_t;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/checkout.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/checkout.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/checkout.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/checkout.c Thu Jul 25 15:29:49 2013
@@ -79,8 +79,6 @@ svn_client__checkout_internal(svn_revnum
apr_pool_t *pool)
{
svn_node_kind_t kind;
- apr_pool_t *session_pool = svn_pool_create(pool);
- svn_ra_session_t *ra_session;
svn_client__pathrev_t *pathrev;
/* Sanity check. Without these, the checkout is meaningless. */
@@ -94,15 +92,21 @@ svn_client__checkout_internal(svn_revnum
&& (revision->kind != svn_opt_revision_head))
return svn_error_create(SVN_ERR_CLIENT_BAD_REVISION, NULL, NULL);
- /* Get the RA connection. */
- SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &pathrev,
- url, NULL, peg_revision, revision,
- ctx, session_pool));
+ {
+ apr_pool_t *session_pool = svn_pool_create(pool);
+ svn_ra_session_t *ra_session;
+
+ /* Get the RA connection. */
+ SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &pathrev,
+ url, NULL, peg_revision,
+ revision, ctx, session_pool));
+
+ pathrev = svn_client__pathrev_dup(pathrev, pool);
+ SVN_ERR(svn_ra_check_path(ra_session, "", pathrev->rev, &kind,
+ session_pool));
- pathrev = svn_client__pathrev_dup(pathrev, pool);
- SVN_ERR(svn_ra_check_path(ra_session, "", pathrev->rev, &kind, pool));
-
- svn_pool_destroy(session_pool);
+ svn_pool_destroy(session_pool);
+ }
if (kind == svn_node_none)
return svn_error_createf(SVN_ERR_RA_ILLEGAL_URL, NULL,
Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/commit.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/commit.c Thu Jul 25 15:29:49 2013
@@ -854,6 +854,19 @@ svn_client_commit6(const apr_array_heade
svn_dirent_local_style(item->path, iterpool),
svn_dirent_local_style(delete_op_root_abspath,
iterpool));
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+ notify = svn_wc_create_notify(
+ delete_op_root_abspath,
+ svn_wc_notify_failed_requires_target,
+ iterpool);
+ notify->err = cmt_err;
+
+ ctx->notify_func2(ctx->notify_baton2, notify, iterpool);
+ }
+
goto cleanup;
}
}
@@ -885,6 +898,19 @@ svn_client_commit6(const apr_array_heade
svn_dirent_local_style(item->path, iterpool),
svn_dirent_local_style(copy_op_root_abspath,
iterpool));
+
+ if (ctx->notify_func2)
+ {
+ svn_wc_notify_t *notify;
+ notify = svn_wc_create_notify(
+ copy_op_root_abspath,
+ svn_wc_notify_failed_requires_target,
+ iterpool);
+ notify->err = cmt_err;
+
+ ctx->notify_func2(ctx->notify_baton2, notify, iterpool);
+ }
+
goto cleanup;
}
}
Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/diff_local.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/diff_local.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/diff_local.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/diff_local.c Thu Jul 25 15:29:49 2013
@@ -607,7 +607,10 @@ svn_client__arbitrary_nodes_diff(const c
if (kind1 != kind2)
return svn_error_createf(SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
_("'%s' is not the same node kind as '%s'"),
- local_abspath1, local_abspath2);
+ svn_dirent_local_style(local_abspath1,
+ scratch_pool),
+ svn_dirent_local_style(local_abspath2,
+ scratch_pool));
if (depth == svn_depth_unknown)
depth = svn_depth_infinity;
@@ -627,7 +630,10 @@ svn_client__arbitrary_nodes_diff(const c
else
return svn_error_createf(SVN_ERR_NODE_UNEXPECTED_KIND, NULL,
_("'%s' is not a file or directory"),
- kind1 == svn_node_none ?
- local_abspath1 : local_abspath2);
+ kind1 == svn_node_none
+ ? svn_dirent_local_style(local_abspath1,
+ scratch_pool)
+ : svn_dirent_local_style(local_abspath2,
+ scratch_pool));
return SVN_NO_ERROR;
}
Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c Thu Jul 25 15:29:49 2013
@@ -4740,7 +4740,7 @@ find_gaps_in_merge_source_history(svn_re
*gap_start = *gap_end = SVN_INVALID_REVNUM;
/* Easy out: There can't be a gap between adjacent revisions. */
- if (abs(source->loc1->rev - source->loc2->rev) == 1)
+ if (labs(source->loc1->rev - source->loc2->rev) == 1)
return SVN_NO_ERROR;
/* Get SOURCE as mergeinfo. */
@@ -12050,11 +12050,15 @@ short_circuit_mergeinfo_log(svn_mergeinf
svn_log_entry_receiver_t receiver,
svn_revnum_t *revision,
svn_client_ctx_t *ctx,
+ svn_ra_session_t *ra_session,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
apr_array_header_t *revprops;
svn_error_t *err;
+ const char *session_url;
+
+ SVN_ERR(svn_ra_get_session_url(ra_session, &session_url, scratch_pool));
revprops = apr_array_make(scratch_pool, 0, sizeof(const char *));
err = svn_client__mergeinfo_log(finding_merged,
@@ -12067,8 +12071,12 @@ short_circuit_mergeinfo_log(svn_mergeinf
source_end_revision,
receiver, revision,
TRUE, svn_depth_infinity,
- revprops, ctx, result_pool,
- scratch_pool);
+ revprops, ctx, ra_session,
+ result_pool, scratch_pool);
+
+ err = svn_error_compose_create(
+ err,
+ svn_ra_reparent(ra_session, session_url, scratch_pool));
if (err)
{
@@ -12132,6 +12140,7 @@ find_last_merged_location(svn_client__pa
const branch_history_t *source_branch,
svn_client__pathrev_t *target,
svn_client_ctx_t *ctx,
+ svn_ra_session_t *ra_session,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
@@ -12159,7 +12168,8 @@ find_last_merged_location(svn_client__pa
&source_end_rev, &source_start_rev,
operative_rev_receiver,
&youngest_merged_rev,
- ctx, result_pool, scratch_pool));
+ ctx, ra_session,
+ result_pool, scratch_pool));
if (!SVN_IS_VALID_REVNUM(youngest_merged_rev))
{
@@ -12194,7 +12204,8 @@ find_last_merged_location(svn_client__pa
&source_start_rev, &source_end_rev,
operative_rev_receiver,
&oldest_eligible_rev,
- ctx, scratch_pool, scratch_pool));
+ ctx, ra_session,
+ scratch_pool, scratch_pool));
/* If there are revisions eligible for merging, use the oldest one
to calculate the base. Otherwise there are no operative revisions
@@ -12248,7 +12259,9 @@ find_base_on_source(svn_client__pathrev_
s_t->yca,
&s_t->source_branch,
s_t->target_branch.tip,
- ctx, result_pool, scratch_pool));
+ ctx,
+ s_t->source_ra_session,
+ result_pool, scratch_pool));
return SVN_NO_ERROR;
}
@@ -12281,7 +12294,9 @@ find_base_on_target(svn_client__pathrev_
s_t->yca,
&s_t->target_branch,
s_t->source,
- ctx, result_pool, scratch_pool));
+ ctx,
+ s_t->target_ra_session,
+ result_pool, scratch_pool));
return SVN_NO_ERROR;
}
Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.c Thu Jul 25 15:29:49 2013
@@ -1021,6 +1021,11 @@ svn_client__elide_mergeinfo(const char *
Set *REPOS_ROOT to the root URL of the repository associated with
PATH_OR_URL.
+ If RA_SESSION is NOT NULL and PATH_OR_URL refers to a URL, RA_SESSION
+ (which must be of the repository containing PATH_OR_URL) will be used
+ instead of a temporary RA session. Caller is responsible for reparenting
+ the session if it wants to use it after the call.
+
Allocate *MERGEINFO_CATALOG and all its contents in RESULT_POOL. Use
SCRATCH_POOL for all temporary allocations.
@@ -1034,17 +1039,30 @@ get_mergeinfo(svn_mergeinfo_catalog_t *m
svn_boolean_t include_descendants,
svn_boolean_t ignore_invalid_mergeinfo,
svn_client_ctx_t *ctx,
+ svn_ra_session_t *ra_session,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
- svn_ra_session_t *ra_session;
const char *local_abspath;
svn_boolean_t use_url = svn_path_is_url(path_or_url);
svn_client__pathrev_t *peg_loc;
- SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &peg_loc,
- path_or_url, NULL, peg_revision,
- peg_revision, ctx, scratch_pool));
+ if (ra_session && svn_path_is_url(path_or_url))
+ {
+ SVN_ERR(svn_ra_reparent(ra_session, path_or_url, scratch_pool));
+ SVN_ERR(svn_client__resolve_rev_and_url(&peg_loc, ra_session,
+ path_or_url,
+ peg_revision,
+ peg_revision,
+ ctx, scratch_pool));
+ }
+ else
+ {
+ SVN_ERR(svn_client__ra_session_from_path2(&ra_session, &peg_loc,
+ path_or_url, NULL,
+ peg_revision,
+ peg_revision, ctx, scratch_pool));
+ }
/* If PATH_OR_URL is as working copy path determine if we will need to
contact the repository for the requested PEG_REVISION. */
@@ -1064,10 +1082,6 @@ get_mergeinfo(svn_mergeinfo_catalog_t *m
}
}
- /* Check server Merge Tracking capability. */
- SVN_ERR(svn_ra__assert_mergeinfo_capable_server(ra_session, path_or_url,
- scratch_pool));
-
SVN_ERR(svn_ra_get_repos_root2(ra_session, repos_root, result_pool));
if (use_url)
@@ -1496,29 +1510,22 @@ logs_for_mergeinfo_rangelist(const char
svn_log_entry_receiver_t log_receiver,
void *log_receiver_baton,
svn_client_ctx_t *ctx,
+ svn_ra_session_t *ra_session,
apr_pool_t *scratch_pool)
{
- apr_array_header_t *target;
svn_merge_range_t *oldest_range, *youngest_range;
- apr_array_header_t *revision_ranges;
- svn_opt_revision_t oldest_rev, youngest_rev;
+ svn_revnum_t oldest_rev, youngest_rev;
struct filter_log_entry_baton_t fleb;
if (! rangelist->nelts)
return SVN_NO_ERROR;
- /* Build a single-member log target list using SOURCE_URL. */
- target = apr_array_make(scratch_pool, 1, sizeof(const char *));
- APR_ARRAY_PUSH(target, const char *) = source_url;
-
/* Calculate and construct the bounds of our log request. */
youngest_range = APR_ARRAY_IDX(rangelist, rangelist->nelts - 1,
svn_merge_range_t *);
- youngest_rev.kind = svn_opt_revision_number;
- youngest_rev.value.number = youngest_range->end;
+ youngest_rev = youngest_range->end;
oldest_range = APR_ARRAY_IDX(rangelist, 0, svn_merge_range_t *);
- oldest_rev.kind = svn_opt_revision_number;
- oldest_rev.value.number = oldest_range->start;
+ oldest_rev = oldest_range->start;
if (! target_mergeinfo_catalog)
target_mergeinfo_catalog = apr_hash_make(scratch_pool);
@@ -1543,19 +1550,29 @@ logs_for_mergeinfo_rangelist(const char
fleb.log_receiver_baton = log_receiver_baton;
fleb.ctx = ctx;
- /* Drive the log. */
- revision_ranges = apr_array_make(scratch_pool, 1,
- sizeof(svn_opt_revision_range_t *));
- if (oldest_revs_first)
- APR_ARRAY_PUSH(revision_ranges, svn_opt_revision_range_t *)
- = svn_opt__revision_range_create(&oldest_rev, &youngest_rev, scratch_pool);
+ if (!ra_session)
+ SVN_ERR(svn_client__open_ra_session_internal(&ra_session, NULL, source_url,
+ NULL, NULL, FALSE, FALSE, ctx,
+ scratch_pool, scratch_pool));
else
- APR_ARRAY_PUSH(revision_ranges, svn_opt_revision_range_t *)
- = svn_opt__revision_range_create(&youngest_rev, &oldest_rev, scratch_pool);
- SVN_ERR(svn_client_log5(target, &youngest_rev, revision_ranges,
- 0, discover_changed_paths, FALSE, FALSE, revprops,
- filter_log_entry_with_rangelist, &fleb, ctx,
- scratch_pool));
+ SVN_ERR(svn_ra_reparent(ra_session, source_url, scratch_pool));
+
+ {
+ apr_array_header_t *target;
+ target = apr_array_make(scratch_pool, 1, sizeof(const char *));
+ APR_ARRAY_PUSH(target, const char *) = "";
+
+ SVN_ERR(svn_ra_get_log2(ra_session, target,
+ oldest_revs_first ? oldest_rev : youngest_rev,
+ oldest_revs_first ? youngest_rev : oldest_rev,
+ 0 /* limit */,
+ discover_changed_paths,
+ FALSE /* strict_node_history */,
+ FALSE /* include_merged_revisions */,
+ revprops,
+ filter_log_entry_with_rangelist, &fleb,
+ scratch_pool));
+ }
/* Check for cancellation. */
if (ctx->cancel_func)
@@ -1616,7 +1633,7 @@ svn_client_mergeinfo_get_merged(apr_hash
svn_mergeinfo_t mergeinfo;
SVN_ERR(get_mergeinfo(&mergeinfo_cat, &repos_root, path_or_url,
- peg_revision, FALSE, FALSE, ctx, pool, pool));
+ peg_revision, FALSE, FALSE, ctx, NULL, pool, pool));
if (mergeinfo_cat)
{
const char *repos_relpath;
@@ -1662,6 +1679,7 @@ svn_client__mergeinfo_log(svn_boolean_t
svn_depth_t depth,
const apr_array_header_t *revprops,
svn_client_ctx_t *ctx,
+ svn_ra_session_t *ra_session,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool)
{
@@ -1715,6 +1733,9 @@ svn_client__mergeinfo_log(svn_boolean_t
subpool = svn_pool_create(scratch_pool);
+ if (ra_session)
+ target_session = ra_session;
+
/* We need the union of TARGET_PATH_OR_URL@TARGET_PEG_REVISION's mergeinfo
and MERGE_SOURCE_URL's history. It's not enough to do path
matching, because renames in the history of MERGE_SOURCE_URL
@@ -1731,11 +1752,27 @@ svn_client__mergeinfo_log(svn_boolean_t
it ourselves. We do need to get the repos_root
though, because get_mergeinfo() won't do it for us. */
target_mergeinfo_cat = *target_mergeinfo_catalog;
- SVN_ERR(svn_client__ra_session_from_path2(&target_session, &pathrev,
- target_path_or_url, NULL,
- target_peg_revision,
- target_peg_revision,
- ctx, subpool));
+
+ if (ra_session && svn_path_is_url(target_path_or_url))
+ {
+ SVN_ERR(svn_ra_reparent(ra_session, target_path_or_url, subpool));
+ SVN_ERR(svn_client__resolve_rev_and_url(&pathrev, ra_session,
+ target_path_or_url,
+ target_peg_revision,
+ target_peg_revision,
+ ctx, subpool));
+ target_session = ra_session;
+ }
+ else
+ {
+ SVN_ERR(svn_client__ra_session_from_path2(&target_session,
+ &pathrev,
+ target_path_or_url,
+ NULL,
+ target_peg_revision,
+ target_peg_revision,
+ ctx, subpool));
+ }
SVN_ERR(svn_ra_get_repos_root2(target_session, &repos_root,
scratch_pool));
}
@@ -1747,7 +1784,7 @@ svn_client__mergeinfo_log(svn_boolean_t
SVN_ERR(get_mergeinfo(target_mergeinfo_catalog, &repos_root,
target_path_or_url, target_peg_revision,
depth == svn_depth_infinity, TRUE,
- ctx, result_pool, scratch_pool));
+ ctx, ra_session, result_pool, scratch_pool));
target_mergeinfo_cat = *target_mergeinfo_catalog;
}
}
@@ -1759,7 +1796,7 @@ svn_client__mergeinfo_log(svn_boolean_t
SVN_ERR(get_mergeinfo(&target_mergeinfo_cat, &repos_root,
target_path_or_url, target_peg_revision,
depth == svn_depth_infinity, TRUE,
- ctx, scratch_pool, scratch_pool));
+ ctx, ra_session, scratch_pool, scratch_pool));
}
if (!svn_path_is_url(target_path_or_url))
@@ -1829,11 +1866,28 @@ svn_client__mergeinfo_log(svn_boolean_t
scratch_pool));
}
- SVN_ERR(svn_client__ra_session_from_path2(&source_session, &pathrev,
- source_path_or_url, NULL,
- source_peg_revision,
- source_peg_revision,
- ctx, subpool));
+ if (target_session
+ && svn_path_is_url(source_path_or_url)
+ && repos_root
+ && svn_uri_skip_ancestor(repos_root, source_path_or_url, subpool))
+ {
+ /* We can re-use the existing session */
+ source_session = target_session;
+ SVN_ERR(svn_ra_reparent(source_session, source_path_or_url, subpool));
+ SVN_ERR(svn_client__resolve_rev_and_url(&pathrev, source_session,
+ source_path_or_url,
+ source_peg_revision,
+ source_peg_revision,
+ ctx, subpool));
+ }
+ else
+ {
+ SVN_ERR(svn_client__ra_session_from_path2(&source_session, &pathrev,
+ source_path_or_url, NULL,
+ source_peg_revision,
+ source_peg_revision,
+ ctx, subpool));
+ }
SVN_ERR(svn_client__get_revision_number(&start_rev, &youngest_rev,
ctx->wc_ctx, source_path_or_url,
source_session,
@@ -1852,9 +1906,6 @@ svn_client__mergeinfo_log(svn_boolean_t
scratch_pool));
if (start_rev > end_rev)
oldest_revs_first = FALSE;
-
- /* Close the source and target sessions. */
- svn_pool_destroy(subpool);
}
/* Separate the explicit or inherited mergeinfo on TARGET_PATH_OR_URL,
@@ -2111,7 +2162,10 @@ svn_client__mergeinfo_log(svn_boolean_t
log_target = svn_path_url_add_component2(repos_root, log_target + 1,
scratch_pool);
- SVN_ERR(logs_for_mergeinfo_rangelist(log_target, merge_source_fspaths,
+ {
+ svn_error_t *err;
+
+ err = logs_for_mergeinfo_rangelist(log_target, merge_source_fspaths,
finding_merged,
master_inheritable_rangelist,
oldest_revs_first,
@@ -2122,8 +2176,13 @@ svn_client__mergeinfo_log(svn_boolean_t
discover_changed_paths,
revprops,
log_receiver, log_receiver_baton,
- ctx, scratch_pool));
- return SVN_NO_ERROR;
+ ctx, target_session, scratch_pool);
+
+ /* Close the source and target sessions. */
+ svn_pool_destroy(subpool); /* For SVN_ERR_CEASE_INVOCATION */
+
+ return svn_error_trace(err);
+ }
}
svn_error_t *
@@ -2142,13 +2201,15 @@ svn_client_mergeinfo_log2(svn_boolean_t
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool)
{
- return svn_client__mergeinfo_log(finding_merged, target_path_or_url,
+ return svn_error_trace(
+ svn_client__mergeinfo_log(finding_merged, target_path_or_url,
target_peg_revision, NULL,
source_path_or_url, source_peg_revision,
source_start_revision, source_end_revision,
log_receiver, log_receiver_baton,
discover_changed_paths, depth, revprops,
- ctx, scratch_pool, scratch_pool);
+ ctx, NULL,
+ scratch_pool, scratch_pool));
}
svn_error_t *
@@ -2186,7 +2247,7 @@ svn_client_suggest_merge_sources(apr_arr
/* ### TODO: Share ra_session batons to improve efficiency? */
SVN_ERR(get_mergeinfo(&mergeinfo_cat, &repos_root, path_or_url,
- peg_revision, FALSE, FALSE, ctx, pool, pool));
+ peg_revision, FALSE, FALSE, ctx, NULL, pool, pool));
if (mergeinfo_cat && apr_hash_count(mergeinfo_cat))
{
Modified: subversion/branches/fsfs-format7/subversion/libsvn_client/switch.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_client/switch.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_client/switch.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_client/switch.c Thu Jul 25 15:29:49 2013
@@ -239,7 +239,7 @@ switch_internal(svn_revnum_t *result_rev
return svn_error_createf(SVN_ERR_CLIENT_UNRELATED_RESOURCES, NULL,
_("'%s' shares no common ancestry with '%s'"),
switch_url,
- svn_dirent_dirname(local_abspath, pool));
+ svn_dirent_local_style(local_abspath, pool));
}
wcroot_iprops = apr_hash_make(pool);
Modified: subversion/branches/fsfs-format7/subversion/libsvn_delta/compat.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_delta/compat.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_delta/compat.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_delta/compat.c Thu Jul 25 15:29:49 2013
@@ -1634,11 +1634,14 @@ apply_change(void **dir_baton,
change->copyfrom_path,
scratch_pool);
else
- copyfrom_url = change->copyfrom_path;
+ {
+ copyfrom_url = change->copyfrom_path;
- /* Make this an FS path by prepending "/" */
- if (copyfrom_url[0] != '/')
- copyfrom_url = apr_pstrcat(scratch_pool, "/", copyfrom_url, NULL);
+ /* Make this an FS path by prepending "/" */
+ if (copyfrom_url[0] != '/')
+ copyfrom_url = apr_pstrcat(scratch_pool, "/",
+ copyfrom_url, NULL);
+ }
copyfrom_rev = change->copyfrom_rev;
}
Modified: subversion/branches/fsfs-format7/subversion/libsvn_delta/svndiff.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_delta/svndiff.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_delta/svndiff.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_delta/svndiff.c Thu Jul 25 15:29:49 2013
@@ -34,6 +34,7 @@
#include "private/svn_delta_private.h"
#include "private/svn_subr_private.h"
#include "private/svn_string_private.h"
+#include "private/svn_dep_compat.h"
/* ----- Text delta to svndiff ----- */
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.c Thu Jul 25 15:29:49 2013
@@ -796,8 +796,9 @@ svn_fs_begin_txn(svn_fs_txn_t **txn_p, s
svn_error_t *
-svn_fs_commit_txn(const char **conflict_p, svn_revnum_t *new_rev,
- svn_fs_txn_t *txn, apr_pool_t *pool)
+svn_fs_commit_txn2(const char **conflict_p, svn_revnum_t *new_rev,
+ svn_fs_txn_t *txn, svn_boolean_t set_timestamp,
+ apr_pool_t *pool)
{
svn_error_t *err;
@@ -805,7 +806,7 @@ svn_fs_commit_txn(const char **conflict_
if (conflict_p)
*conflict_p = NULL;
- err = txn->vtable->commit(conflict_p, new_rev, txn, pool);
+ err = txn->vtable->commit(conflict_p, new_rev, txn, set_timestamp, pool);
#ifdef SVN_DEBUG
/* Check postconditions. */
@@ -838,6 +839,12 @@ svn_fs_commit_txn(const char **conflict_
return SVN_NO_ERROR;
}
+svn_error_t *
+svn_fs_commit_txn(const char **conflict_p, svn_revnum_t *new_rev,
+ svn_fs_txn_t *txn, apr_pool_t *pool)
+{
+ return svn_fs_commit_txn2(conflict_p, new_rev, txn, TRUE, pool);
+}
svn_error_t *
svn_fs_abort_txn(svn_fs_txn_t *txn, apr_pool_t *pool)
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.h (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs/fs-loader.h Thu Jul 25 15:29:49 2013
@@ -251,7 +251,8 @@ typedef struct fs_vtable_t
typedef struct txn_vtable_t
{
svn_error_t *(*commit)(const char **conflict_p, svn_revnum_t *new_rev,
- svn_fs_txn_t *txn, apr_pool_t *pool);
+ svn_fs_txn_t *txn, svn_boolean_t set_timestamp,
+ apr_pool_t *pool);
svn_error_t *(*abort)(svn_fs_txn_t *txn, apr_pool_t *pool);
svn_error_t *(*get_prop)(svn_string_t **value_p, svn_fs_txn_t *txn,
const char *propname, apr_pool_t *pool);
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_base/dag.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_base/dag.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_base/dag.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_base/dag.c Thu Jul 25 15:29:49 2013
@@ -1576,10 +1576,10 @@ svn_error_t *
svn_fs_base__dag_commit_txn(svn_revnum_t *new_rev,
svn_fs_txn_t *txn,
trail_t *trail,
+ svn_boolean_t set_timestamp,
apr_pool_t *pool)
{
revision_t revision;
- svn_string_t date;
apr_hash_t *txnprops;
svn_fs_t *fs = txn->fs;
const char *txn_id = txn->id;
@@ -1605,12 +1605,18 @@ svn_fs_base__dag_commit_txn(svn_revnum_t
SVN_ERR(svn_fs_base__txn_make_committed(fs, txn_id, *new_rev,
trail, pool));
- /* Set a date on the commit. We wait until now to fetch the date,
- so it's definitely newer than any previous revision's date. */
- date.data = svn_time_to_cstring(apr_time_now(), pool);
- date.len = strlen(date.data);
- return svn_fs_base__set_rev_prop(fs, *new_rev, SVN_PROP_REVISION_DATE,
- NULL, &date, trail, pool);
+ if (set_timestamp)
+ {
+ /* Set a date on the commit if requested. We wait until now to fetch the
+ date, so it's definitely newer than any previous revision's date. */
+ svn_string_t date;
+ date.data = svn_time_to_cstring(apr_time_now(), pool);
+ date.len = strlen(date.data);
+ SVN_ERR(svn_fs_base__set_rev_prop(fs, *new_rev, SVN_PROP_REVISION_DATE,
+ NULL, &date, trail, pool));
+ }
+
+ return SVN_NO_ERROR;
}
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_base/dag.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_base/dag.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_base/dag.h (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_base/dag.h Thu Jul 25 15:29:49 2013
@@ -273,12 +273,16 @@ svn_error_t *svn_fs_base__dag_clone_root
latest revision in TXN->FS. If the caller doesn't take care of this,
you may lose people's work!
+ Update commit time to ensure that svn:date revprops remain ordered if
+ SET_TIMESTAMP is non-zero.
+
Do any necessary temporary allocation in a subpool of POOL.
Consume temporary space at most proportional to the maximum depth
of SVN_TXN's tree of mutable nodes. */
svn_error_t *svn_fs_base__dag_commit_txn(svn_revnum_t *new_rev,
svn_fs_txn_t *txn,
trail_t *trail,
+ svn_boolean_t set_timestamp,
apr_pool_t *pool);
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_base/fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_base/fs.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_base/fs.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_base/fs.c Thu Jul 25 15:29:49 2013
@@ -1493,7 +1493,7 @@ svn_fs_base__init(const svn_version_t *l
return svn_error_createf(SVN_ERR_VERSION_MISMATCH, NULL,
_("Unsupported FS loader version (%d) for bdb"),
loader_version->major);
- SVN_ERR(svn_ver_check_list(base_version(), checklist));
+ SVN_ERR(svn_ver_check_list2(base_version(), checklist, svn_ver_equal));
SVN_ERR(check_bdb_version());
SVN_ERR(svn_fs_bdb__init(common_pool));
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c Thu Jul 25 15:29:49 2013
@@ -2577,6 +2577,7 @@ struct commit_args
{
svn_fs_txn_t *txn;
svn_revnum_t new_rev;
+ svn_boolean_t set_timestamp;
};
@@ -2636,7 +2637,7 @@ txn_body_commit(void *baton, trail_t *tr
/* Else, commit the txn. */
return svn_fs_base__dag_commit_txn(&(args->new_rev), txn, trail,
- trail->pool);
+ args->set_timestamp, trail->pool);
}
@@ -2646,6 +2647,7 @@ svn_error_t *
svn_fs_base__commit_txn(const char **conflict_p,
svn_revnum_t *new_rev,
svn_fs_txn_t *txn,
+ svn_boolean_t set_timestamp,
apr_pool_t *pool)
{
/* How do commits work in Subversion?
@@ -2749,6 +2751,7 @@ svn_fs_base__commit_txn(const char **con
/* Try to commit. */
commit_args.txn = txn;
+ commit_args.set_timestamp = set_timestamp;
err = svn_fs_base__retry_txn(fs, txn_body_commit, &commit_args,
FALSE, subpool);
if (err && (err->apr_err == SVN_ERR_FS_TXN_OUT_OF_DATE))
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.h?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.h (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.h Thu Jul 25 15:29:49 2013
@@ -42,6 +42,7 @@ svn_error_t *svn_fs_base__deltify(svn_fs
svn_error_t *svn_fs_base__commit_txn(const char **conflict_p,
svn_revnum_t *new_rev, svn_fs_txn_t *txn,
+ svn_boolean_t set_timestamp,
apr_pool_t *pool);
svn_error_t *svn_fs_base__txn_root(svn_fs_root_t **root_p, svn_fs_txn_t *txn,
Modified: subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs.c Thu Jul 25 15:29:49 2013
@@ -490,7 +490,7 @@ svn_fs_fs__init(const svn_version_t *loa
return svn_error_createf(SVN_ERR_VERSION_MISMATCH, NULL,
_("Unsupported FS loader version (%d) for fsfs"),
loader_version->major);
- SVN_ERR(svn_ver_check_list(fs_version(), checklist));
+ SVN_ERR(svn_ver_check_list2(fs_version(), checklist, svn_ver_equal));
*vtable = &library_vtable;
return SVN_NO_ERROR;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_local/ra_plugin.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_local/ra_plugin.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_local/ra_plugin.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_local/ra_plugin.c Thu Jul 25 15:29:49 2013
@@ -1764,7 +1764,7 @@ svn_ra_local__init(const svn_version_t *
"ra_local"),
loader_version->major);
- SVN_ERR(svn_ver_check_list(ra_local_version(), checklist));
+ SVN_ERR(svn_ver_check_list2(ra_local_version(), checklist, svn_ver_equal));
#ifndef SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL
/* This assumes that POOL was the pool used to load the dso. */
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/blame.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/blame.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/blame.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/blame.c Thu Jul 25 15:29:49 2013
@@ -111,7 +111,6 @@ static const svn_ra_serf__xml_transition
{ 0 }
};
-
/* Conforms to svn_ra_serf__xml_opened_t */
static svn_error_t *
blame_opened(svn_ra_serf__xml_estate_t *xes,
@@ -359,9 +358,10 @@ svn_ra_serf__get_file_revs(svn_ra_sessio
blame_opened,
blame_closed,
blame_cdata,
+ NULL,
blame_ctx,
pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, pool);
handler->method = "REPORT";
handler->path = req_url;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/commit.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/commit.c Thu Jul 25 15:29:49 2013
@@ -2269,7 +2269,9 @@ abort_edit(void *edit_baton,
&& handler->sline.code != 404
)
{
- SVN_ERR_MALFUNCTION();
+ return svn_error_createf(SVN_ERR_RA_DAV_MALFORMED_DATA, NULL,
+ _("DELETE returned unexpected status: %d"),
+ handler->sline.code);
}
return SVN_NO_ERROR;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/get_deleted_rev.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/get_deleted_rev.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/get_deleted_rev.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/get_deleted_rev.c Thu Jul 25 15:29:49 2013
@@ -151,10 +151,10 @@ svn_ra_serf__get_deleted_rev(svn_ra_sess
pool, pool));
xmlctx = svn_ra_serf__xml_context_create(getdrev_ttable,
- NULL, getdrev_closed, NULL,
+ NULL, getdrev_closed, NULL, NULL,
drev_ctx,
pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, pool);
handler->method = "REPORT";
handler->path = req_url;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getdate.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getdate.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getdate.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getdate.c Thu Jul 25 15:29:49 2013
@@ -140,10 +140,10 @@ svn_ra_serf__get_dated_revision(svn_ra_s
SVN_ERR(svn_ra_serf__report_resource(&report_target, session, NULL, pool));
xmlctx = svn_ra_serf__xml_context_create(date_ttable,
- NULL, date_closed, NULL,
+ NULL, date_closed, NULL, NULL,
date_ctx,
pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, pool);
handler->method = "REPORT";
handler->path = report_target;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocations.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocations.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocations.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocations.c Thu Jul 25 15:29:49 2013
@@ -176,10 +176,10 @@ svn_ra_serf__get_locations(svn_ra_sessio
pool, pool));
xmlctx = svn_ra_serf__xml_context_create(getloc_ttable,
- NULL, getloc_closed, NULL,
+ NULL, getloc_closed, NULL, NULL,
loc_ctx,
pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, pool);
handler->method = "REPORT";
handler->path = req_url;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocationsegments.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocationsegments.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocationsegments.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocationsegments.c Thu Jul 25 15:29:49 2013
@@ -178,10 +178,10 @@ svn_ra_serf__get_location_segments(svn_r
pool, pool));
xmlctx = svn_ra_serf__xml_context_create(gls_ttable,
- NULL, gls_closed, NULL,
+ NULL, gls_closed, NULL, NULL,
gls_ctx,
pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, pool);
handler->method = "REPORT";
handler->path = req_url;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocks.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocks.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocks.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocks.c Thu Jul 25 15:29:49 2013
@@ -246,10 +246,10 @@ svn_ra_serf__get_locks(svn_ra_session_t
lock_ctx->hash = apr_hash_make(pool);
xmlctx = svn_ra_serf__xml_context_create(getlocks_ttable,
- NULL, getlocks_closed, NULL,
+ NULL, getlocks_closed, NULL, NULL,
lock_ctx,
pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, pool);
handler->method = "REPORT";
handler->path = req_url;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/inherited_props.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/inherited_props.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/inherited_props.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/inherited_props.c Thu Jul 25 15:29:49 2013
@@ -258,10 +258,11 @@ svn_ra_serf__get_inherited_props(svn_ra_
iprops_ctx->revision = revision;
xmlctx = svn_ra_serf__xml_context_create(iprops_table,
- iprops_opened, iprops_closed, NULL,
+ iprops_opened, iprops_closed,
+ NULL, NULL,
iprops_ctx,
scratch_pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, scratch_pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, scratch_pool);
handler->method = "REPORT";
handler->path = req_url;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/locks.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/locks.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/locks.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/locks.c Thu Jul 25 15:29:49 2013
@@ -142,6 +142,10 @@ static const svn_ra_serf__xml_transition
{ 0 }
};
+static const int locks_expected_status[] = {
+ 207,
+ 0
+};
/* Conforms to svn_ra_serf__xml_closed_t */
static svn_error_t *
@@ -378,10 +382,10 @@ svn_ra_serf__get_lock(svn_ra_session_t *
lock_ctx->lock->path = apr_pstrdup(pool, path); /* be sure */
xmlctx = svn_ra_serf__xml_context_create(locks_ttable,
- NULL, locks_closed, NULL,
+ NULL, locks_closed, NULL, NULL,
lock_ctx,
pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, locks_expected_status, pool);
handler->method = "PROPFIND";
handler->path = req_url;
@@ -469,10 +473,10 @@ svn_ra_serf__lock(svn_ra_session_t *ra_s
lock_ctx->path, iterpool);
xmlctx = svn_ra_serf__xml_context_create(locks_ttable,
- NULL, locks_closed, NULL,
+ NULL, locks_closed, NULL, NULL,
lock_ctx,
iterpool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, iterpool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, iterpool);
handler->method = "LOCK";
handler->path = req_url;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/log.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/log.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/log.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/log.c Thu Jul 25 15:29:49 2013
@@ -579,10 +579,10 @@ svn_ra_serf__get_log(svn_ra_session_t *r
pool, pool));
xmlctx = svn_ra_serf__xml_context_create(log_ttable,
- log_opened, log_closed, NULL,
+ log_opened, log_closed, NULL, NULL,
log_ctx,
pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, pool);
handler->method = "REPORT";
handler->path = req_url;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/merge.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/merge.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/merge.c Thu Jul 25 15:29:49 2013
@@ -404,10 +404,10 @@ svn_ra_serf__run_merge(const svn_commit_
merge_ctx->merge_url = session->session_url.path;
xmlctx = svn_ra_serf__xml_context_create(merge_ttable,
- NULL, merge_closed, NULL,
+ NULL, merge_closed, NULL, NULL,
merge_ctx,
scratch_pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, scratch_pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, scratch_pool);
handler->method = "MERGE";
handler->path = merge_ctx->merge_url;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/mergeinfo.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/mergeinfo.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/mergeinfo.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/mergeinfo.c Thu Jul 25 15:29:49 2013
@@ -214,10 +214,10 @@ svn_ra_serf__get_mergeinfo(svn_ra_sessio
mergeinfo_ctx->include_descendants = include_descendants;
xmlctx = svn_ra_serf__xml_context_create(mergeinfo_ttable,
- NULL, mergeinfo_closed, NULL,
+ NULL, mergeinfo_closed, NULL, NULL,
mergeinfo_ctx,
pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, pool);
handler->method = "REPORT";
handler->path = path;
Modified: subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/options.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/options.c?rev=1507012&r1=1507011&r2=1507012&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/options.c (original)
+++ subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/options.c Thu Jul 25 15:29:49 2013
@@ -401,10 +401,10 @@ create_options_req(options_context_t **o
new_ctx->youngest_rev = SVN_INVALID_REVNUM;
xmlctx = svn_ra_serf__xml_context_create(options_ttable,
- NULL, options_closed, NULL,
+ NULL, options_closed, NULL, NULL,
new_ctx,
pool);
- handler = svn_ra_serf__create_expat_handler(xmlctx, pool);
+ handler = svn_ra_serf__create_expat_handler(xmlctx, NULL, pool);
handler->method = "OPTIONS";
handler->path = session->session_url.path;
@@ -545,7 +545,6 @@ svn_ra_serf__probe_proxy(svn_ra_serf__se
apr_pool_t *scratch_pool)
{
svn_ra_serf__handler_t *handler;
- svn_error_t *err;
handler = apr_pcalloc(scratch_pool, sizeof(*handler));
handler->handler_pool = scratch_pool;
@@ -562,27 +561,19 @@ svn_ra_serf__probe_proxy(svn_ra_serf__se
/* No special headers. */
- err = svn_ra_serf__context_run_one(handler, scratch_pool);
- if (err)
+ SVN_ERR(svn_ra_serf__context_run_one(handler, scratch_pool));
+ /* Some versions of nginx in reverse proxy mode will return 411. They want
+ a Content-Length header, rather than chunked requests. We can keep other
+ HTTP/1.1 features, but will disable the chunking. */
+ if (handler->sline.code == 411)
{
- /* Some versions of nginx in reverse proxy mode will return 411. They want
- a Content-Length header, rather than chunked requests. We can keep other
- HTTP/1.1 features, but will disable the chunking. */
- if (handler->sline.code == 411)
- {
- serf_sess->using_chunked_requests = FALSE;
+ serf_sess->using_chunked_requests = FALSE;
- svn_error_clear(err);
- return SVN_NO_ERROR;
- }
-
- return svn_error_trace(
- svn_error_compose_create(
- svn_ra_serf__error_on_status(handler->sline,
- serf_sess->session_url.path,
- handler->location),
- err));
+ return SVN_NO_ERROR;
}
+ SVN_ERR(svn_ra_serf__error_on_status(handler->sline,
+ handler->path,
+ handler->location));
return SVN_NO_ERROR;
}