Modified: subversion/branches/remove-log-addressing/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original) +++ subversion/branches/remove-log-addressing/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Sat Feb 14 11:15:05 2015 @@ -130,11 +130,11 @@ static void *convert_pl_revision_range(S /* this will assign to range */ SWIG_ConvertPtr(value, (void **)&range, _SWIG_TYPE("svn_opt_revision_range_t *"), 0); return range; - } + } - if (SvROK(value) + if (SvROK(value) && SvTYPE(SvRV(value)) == SVt_PVAV - && av_len((AV *)SvRV(value)) == 1) { + && av_len((AV *)SvRV(value)) == 1) { /* value is a two-element ARRAY */ AV* array = (AV *)SvRV(value); svn_opt_revision_t temp_start, temp_end; @@ -143,17 +143,17 @@ static void *convert_pl_revision_range(S /* Note: Due to how svn_swig_pl_set_revision works, * either the passed in svn_opt_revision_t is modified - * (and the original pointer returned) or a different pointer + * (and the original pointer returned) or a different pointer * is returned. svn_swig_pl_set_revision may return NULL * only if croak_on_error is FALSE. */ - start = svn_swig_pl_set_revision(&temp_start, - *av_fetch(array, 0, 0), + start = svn_swig_pl_set_revision(&temp_start, + *av_fetch(array, 0, 0), croak_on_error, pool); if (start == NULL) return NULL; - end = svn_swig_pl_set_revision(&temp_end, - *av_fetch(array, 1, 0), + end = svn_swig_pl_set_revision(&temp_end, + *av_fetch(array, 1, 0), croak_on_error, pool); if (end == NULL) return NULL; @@ -163,7 +163,7 @@ static void *convert_pl_revision_range(S range->start = *start; range->end = *end; return range; - } + } if (croak_on_error) croak("unknown revision range: " @@ -283,7 +283,7 @@ apr_array_header_t *svn_swig_pl_objs_to_ } /* Convert a single revision range or an array of revisions ranges - * Note: We can't simply use svn_swig_pl_to_array() as is, since + * Note: We can't simply use svn_swig_pl_to_array() as is, since * it immediatley checks whether source is an array reference and then * proceeds to treat this as the "array of ..." case. But a revision range * may be specified as a (two-element) array. Hence we first try to @@ -297,7 +297,7 @@ apr_array_header_t *svn_swig_pl_array_to svn_opt_revision_range_t *range; if ((range = convert_pl_revision_range(source, &croak_on_error, pool))) { - apr_array_header_t *temp = apr_array_make(pool, 1, + apr_array_header_t *temp = apr_array_make(pool, 1, sizeof(svn_opt_revision_range_t *)); temp->nelts = 1; APR_ARRAY_IDX(temp, 0, svn_opt_revision_range_t *) = range; @@ -306,7 +306,7 @@ apr_array_header_t *svn_swig_pl_array_to if (SvROK(source) && SvTYPE(SvRV(source)) == SVt_PVAV) { croak_on_error = TRUE; - return svn_swig_pl_to_array(source, convert_pl_revision_range, + return svn_swig_pl_to_array(source, convert_pl_revision_range, &croak_on_error, pool); } @@ -314,7 +314,7 @@ apr_array_header_t *svn_swig_pl_array_to /* This return is actually unreachable because of the croak above, * however, Visual Studio's compiler doesn't like if all paths don't have - * a return and errors out otherwise. */ + * a return and errors out otherwise. */ return NULL; } @@ -430,8 +430,8 @@ SV *svn_swig_pl_revnums_to_list(const ap } /* perl -> c svn_opt_revision_t conversion */ -svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev, - SV *source, +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) { @@ -471,7 +471,7 @@ svn_opt_revision_t *svn_swig_pl_set_revi maybe_croak(("unknown opt_revision_t string \"%s\": " "missing closing brace for \"{DATE}\"", input)); *end = '\0'; - err = svn_parse_date (&matched, &tm, + err = svn_parse_date (&matched, &tm, input + 1, apr_time_now(), pool); if (err) { svn_error_clear (err); @@ -1043,7 +1043,7 @@ svn_error_t *svn_swig_pl_thunk_log_entry svn_swig_pl_callback_thunk(CALL_SV, receiver, NULL, - "SS", + "SS", log_entry, _SWIG_TYPE("svn_log_entry_t *"), pool, POOLINFO);
Modified: subversion/branches/remove-log-addressing/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h (original) +++ subversion/branches/remove-log-addressing/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h Sat Feb 14 11:15:05 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, @@ -219,12 +219,12 @@ svn_error_t *thunk_get_wc_prop(void *bat /* 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. */ Modified: subversion/branches/remove-log-addressing/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original) +++ subversion/branches/remove-log-addressing/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Sat Feb 14 11:15:05 2015 @@ -1417,62 +1417,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, @@ -2376,7 +2376,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, @@ -3761,7 +3761,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 +3811,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 +4053,7 @@ ra_callbacks_get_client_string(void *bat { if ((*name = PyString_AsString(result)) == NULL) { - err = callback_exception_error(); + err = callback_exception_error(); } } Modified: subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (original) +++ subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c Sat Feb 14 11:15:05 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/remove-log-addressing/subversion/bindings/swig/ruby/test/test_fs.rb URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/test_fs.rb?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/test_fs.rb (original) +++ subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/test_fs.rb Sat Feb 14 11:15:05 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/remove-log-addressing/subversion/bindings/swig/ruby/test/util.rb URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/util.rb?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/util.rb (original) +++ subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/util.rb Sat Feb 14 11:15:05 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/remove-log-addressing/subversion/bindings/swig/ruby/test/windows_util.rb URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/windows_util.rb?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/windows_util.rb (original) +++ subversion/branches/remove-log-addressing/subversion/bindings/swig/ruby/test/windows_util.rb Sat Feb 14 11:15:05 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/remove-log-addressing/subversion/include/private/svn_packed_data.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/private/svn_packed_data.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/private/svn_packed_data.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/private/svn_packed_data.h Sat Feb 14 11:15:05 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/remove-log-addressing/subversion/include/private/svn_repos_private.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/private/svn_repos_private.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/private/svn_repos_private.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/private/svn_repos_private.h Sat Feb 14 11:15:05 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/remove-log-addressing/subversion/include/private/svn_sorts_private.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/private/svn_sorts_private.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/private/svn_sorts_private.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/private/svn_sorts_private.h Sat Feb 14 11:15:05 2015 @@ -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/remove-log-addressing/subversion/include/private/svn_subr_private.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/private/svn_subr_private.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/private/svn_subr_private.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/private/svn_subr_private.h Sat Feb 14 11:15:05 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. @@ -652,7 +652,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. Modified: subversion/branches/remove-log-addressing/subversion/include/private/svn_wc_private.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/private/svn_wc_private.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/private/svn_wc_private.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/private/svn_wc_private.h Sat Feb 14 11:15:05 2015 @@ -1259,6 +1259,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 +1854,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/remove-log-addressing/subversion/include/svn_auth.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_auth.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_auth.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_auth.h Sat Feb 14 11:15:05 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/remove-log-addressing/subversion/include/svn_cache_config.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_cache_config.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_cache_config.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_cache_config.h Sat Feb 14 11:15:05 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/remove-log-addressing/subversion/include/svn_client.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_client.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_client.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_client.h Sat Feb 14 11:15:05 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). @@ -4492,6 +4492,35 @@ 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 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,7 +4539,27 @@ 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 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 cannot pin externals. + * * @since New in 1.7. + * @deprecated Provided for backward compatibility with the 1.8 API. */ svn_error_t * svn_client_copy6(const apr_array_header_t *sources, Modified: subversion/branches/remove-log-addressing/subversion/include/svn_cmdline.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_cmdline.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_cmdline.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_cmdline.h Sat Feb 14 11:15:05 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,7 +370,7 @@ 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. */ Modified: subversion/branches/remove-log-addressing/subversion/include/svn_diff.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_diff.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_diff.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_diff.h Sat Feb 14 11:15:05 2015 @@ -1056,7 +1056,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 +1067,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/remove-log-addressing/subversion/include/svn_fs.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_fs.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_fs.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_fs.h Sat Feb 14 11:15:05 2015 @@ -136,7 +136,7 @@ typedef struct svn_fs_t svn_fs_t; * * It is not ready for general production use. Please consult the * respective release notes on suggested usage scenarios. - * + * * @since New in 1.9. */ #define SVN_FS_TYPE_FSX "fsx" @@ -330,12 +330,12 @@ typedef enum svn_fs_upgrade_notify_actio svn_fs_upgrade_format_bumped } svn_fs_upgrade_notify_action_t; -/** The type of a upgrade notification function. @a number is specifc +/** The type of a upgrade notification function. @a number is specifc * to @a action (see #svn_fs_upgrade_notify_action_t); @a action is the * type of action being performed. @a baton is the corresponding baton * for the notification function, and @a pool can be used for temporary * allocations, but will be cleared between invocations. - * + * * @since New in 1.9. */ typedef svn_error_t *(*svn_fs_upgrade_notify_t)(void *baton, @@ -377,7 +377,7 @@ svn_fs_upgrade2(const char *path, * Like svn_fs_upgrade2 but with notify_func, notify_baton, cancel_func * and cancel_baton being set to NULL. * - * @deprecated Provided for backward compatibility with the 1.8 API. + * @deprecated Provided for backward compatibility with the 1.8 API. * @since New in 1.5. */ SVN_DEPRECATED @@ -433,7 +433,7 @@ svn_fs_path(svn_fs_t *fs, * Return a shallow copy of the configuration parameters used to open * @a fs, allocated in @a pool. It may be @c NULL. The contents of the * hash contents remains valid only for @a fs's lifetime. - * + * * @note This is just what was passed to svn_fs_create() or svn_fs_open(). * You may not modify it. * @@ -856,7 +856,7 @@ svn_fs_access_add_lock_token(svn_fs_acce */ /** Defines the possible ways two arbitrary nodes may be related. - * + * * @since New in 1.9. */ typedef enum svn_fs_node_relation_t @@ -1121,7 +1121,7 @@ svn_fs_begin_txn(svn_fs_txn_t **txn_p, * new revision will have svn:date set to the current time at some * point during the commit and any svn:date on the transaction will be * lost. - * + * * If @a conflict_p is non-zero, use it to provide details on any * conflicts encountered merging @a txn with the most recent committed * revisions. If a conflict occurs, set @a *conflict_p to the path of Modified: subversion/branches/remove-log-addressing/subversion/include/svn_io.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_io.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_io.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_io.h Sat Feb 14 11:15:05 2015 @@ -693,7 +693,7 @@ svn_io_files_contents_three_same_p(svn_b * * Use @a pool for memory allocations. * - * @since + * @since */ svn_error_t * svn_io_file_create(const char *file, @@ -720,7 +720,7 @@ svn_io_file_create_bytes(const char *fil apr_pool_t *pool); /** Create an empty file at utf8-encoded path @a file. - * + * * @a file must not already exist. If an error occurs while * closing the file, attempt to delete the file before returning the error. * Modified: subversion/branches/remove-log-addressing/subversion/include/svn_props.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_props.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_props.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_props.h Sat Feb 14 11:15:05 2015 @@ -440,13 +440,20 @@ svn_prop_name_is_valid(const char *prop_ * @verbatim /trunk: 1-6,9,37-38 /trunk/foo: 10 @endverbatim + * @since New in 1.5. */ #define SVN_PROP_MERGEINFO SVN_PROP_PREFIX "mergeinfo" -/** Property used to record inheritable configuration auto-props. */ +/** Property used to record inheritable configuration auto-props. + * + * @since New in 1.8. + */ #define SVN_PROP_INHERITABLE_AUTO_PROPS SVN_PROP_PREFIX "auto-props" -/** Property used to record inheritable configuration ignores. */ +/** Property used to record inheritable configuration ignores. + * + * @since New in 1.8. + */ #define SVN_PROP_INHERITABLE_IGNORES SVN_PROP_PREFIX "global-ignores" /** Meta-data properties. Modified: subversion/branches/remove-log-addressing/subversion/include/svn_ra.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_ra.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_ra.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_ra.h Sat Feb 14 11:15:05 2015 @@ -289,7 +289,7 @@ typedef svn_boolean_t (*svn_ra_check_tun * This function will be called when the pool that owns the tunnel * connection is cleared or destroyed. * - * @a tunnel_context is the baton as returned from the + * @a tunnel_context is the baton as returned from the * svn_ra_open_tunnel_func_t. * * @a tunnel_baton was returned by the open-tunnel callback. Modified: subversion/branches/remove-log-addressing/subversion/include/svn_repos.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_repos.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_repos.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_repos.h Sat Feb 14 11:15:05 2015 @@ -3749,7 +3749,7 @@ svn_repos_authz_check_access(svn_authz_t typedef enum svn_repos_revision_access_level_t { /** no access allowed to the revision properties and all changed-paths - * information. */ + * information. */ svn_repos_revision_access_none, /** access granted to some (svn:date and svn:author) revision properties and * changed-paths information on paths the read has access to. */ Modified: subversion/branches/remove-log-addressing/subversion/include/svn_string.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/include/svn_string.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/include/svn_string.h (original) +++ subversion/branches/remove-log-addressing/subversion/include/svn_string.h Sat Feb 14 11:15:05 2015 @@ -443,7 +443,7 @@ svn_string_compare_stringbuf(const svn_s */ /** Divide @a input into substrings, interpreting any char from @a sep - * as a token separator. + * as a token separator. * * Return an array of copies of those substrings (plain const char*), * allocating both the array and the copies in @a pool. Modified: subversion/branches/remove-log-addressing/subversion/libsvn_client/blame.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_client/blame.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_client/blame.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_client/blame.c Sat Feb 14 11:15:05 2015 @@ -662,7 +662,7 @@ svn_client_blame5(const char *target, target, peg_revision, &younger_end, ctx, pool)); - + /* Make the session point to the real URL. */ SVN_ERR(svn_ra_reparent(ra_session, loc->url, pool)); } @@ -740,7 +740,7 @@ svn_client_blame5(const char *target, revision. */ SVN_ERR(svn_ra_get_latest_revnum(ra_session, &youngest, frb.currpool)); SVN_ERR(svn_ra_get_file_revs2(ra_session, "", - start_revnum + start_revnum - (0 < start_revnum && start_revnum <= end_revnum ? 1 : 0) + (youngest > start_revnum && start_revnum > end_revnum ? 1 : 0), end_revnum, include_merged_revisions, Modified: subversion/branches/remove-log-addressing/subversion/libsvn_client/client.h URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_client/client.h?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_client/client.h (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_client/client.h Sat Feb 14 11:15:05 2015 @@ -1208,6 +1208,41 @@ svn_client__arbitrary_nodes_diff(const c apr_pool_t *scratch_pool); +/* Helper for the remote case of svn_client_propget. + * + * If PROPS is not null, then get the value of property PROPNAME in + * REVNUM, using RA_SESSION. Store the value ('svn_string_t *') in + * PROPS, under the path key "TARGET_PREFIX/TARGET_RELATIVE" + * ('const char *'). + * + * If INHERITED_PROPS is not null, then set *INHERITED_PROPS to a + * depth-first ordered array of svn_prop_inherited_item_t * structures + * representing the PROPNAME properties inherited by the target. If + * INHERITABLE_PROPS in not null and no inheritable properties are found, + * then set *INHERITED_PROPS to an empty array. + * + * Recurse according to DEPTH, similarly to svn_client_propget3(). + * + * KIND is the kind of the node at "TARGET_PREFIX/TARGET_RELATIVE". + * Yes, caller passes this; it makes the recursion more efficient :-). + * + * Allocate PROPS and *INHERITED_PROPS in RESULT_POOL, but do all temporary + * work in SCRATCH_POOL. The two pools can be the same; recursive + * calls may use a different SCRATCH_POOL, however. + */ +svn_error_t * +svn_client__remote_propget(apr_hash_t *props, + apr_array_header_t **inherited_props, + const char *propname, + const char *target_prefix, + const char *target_relative, + svn_node_kind_t kind, + svn_revnum_t revnum, + svn_ra_session_t *ra_session, + svn_depth_t depth, + apr_pool_t *result_pool, + apr_pool_t *scratch_pool); + #ifdef __cplusplus } #endif /* __cplusplus */ Modified: subversion/branches/remove-log-addressing/subversion/libsvn_client/commit.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_client/commit.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_client/commit.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_client/commit.c Sat Feb 14 11:15:05 2015 @@ -242,8 +242,8 @@ post_process_commit_item(svn_wc_committe remove_lock = (! keep_locks && (item->state_flags & SVN_CLIENT_COMMIT_ITEM_LOCK_TOKEN)); - /* When the node was deleted (or replaced), we need to always remove the - locks, as they're invalidated on the server. We cannot honor the + /* When the node was deleted (or replaced), we need to always remove the + locks, as they're invalidated on the server. We cannot honor the SVN_CLIENT_COMMIT_ITEM_LOCK_TOKEN flag here because it does not tell us whether we have locked children. */ if (item->state_flags & SVN_CLIENT_COMMIT_ITEM_DELETE) @@ -252,7 +252,7 @@ post_process_commit_item(svn_wc_committe return svn_error_trace( svn_wc_queue_committed4(queue, wc_ctx, item->path, loop_recurse, - 0 != (item->state_flags & + 0 != (item->state_flags & (SVN_CLIENT_COMMIT_ITEM_ADD | SVN_CLIENT_COMMIT_ITEM_DELETE | SVN_CLIENT_COMMIT_ITEM_TEXT_MODS Modified: subversion/branches/remove-log-addressing/subversion/libsvn_client/commit_util.c URL: http://svn.apache.org/viewvc/subversion/branches/remove-log-addressing/subversion/libsvn_client/commit_util.c?rev=1659777&r1=1659776&r2=1659777&view=diff ============================================================================== --- subversion/branches/remove-log-addressing/subversion/libsvn_client/commit_util.c (original) +++ subversion/branches/remove-log-addressing/subversion/libsvn_client/commit_util.c Sat Feb 14 11:15:05 2015 @@ -1559,7 +1559,7 @@ do_item_commit(void **dir_baton, file_pool = pool; /* Subpools are cheap, but memory isn't */ - file_pool = svn_pool_create(file_pool); + file_pool = svn_pool_create(file_pool); /* Call the cancellation function. */ if (ctx->cancel_func)
