Checkout Tools
  • last updated 2 hours ago
Constraints: committers
Constraints: files
Constraints: dates
Fix up "@since" markers in doc strings.

* subversion/include/svn_fs.h

(SVN_FS_TXN_CLIENT_DATE, svn_fs_lock_callback_t):

Mark as new in 1.9.

* subversion/include/svn_path.h

(svn_path_illegal_path_escape): Mark as new in 1.8, rather than 1.9, as

it was first released in 1.8.0 (via r1482136).

* subversion/include/svn_types.h

(svn_null_pointer_constant_stdarg_sentinel_t, SVN_VA_NULL):

Mark as new in 1.9.

  1. … 2 more files in changeset.
Fix Doxygen mark-up.

* subversion/include/svn_client.h

(svn_client_ctx_t): s/@Since/@since/.

(svn_client_cleanup): Mark the doc string as a Doxygen comment.

* subversion/include/svn_compat.h

(svn_compat_log_revprops_out): Correct a cross-reference.

* subversion/include/svn_config.h

(cached_authentication_data_attributes): Give this Doxygen group a title.

* subversion/include/svn_fs.h


svn_fs_lock_result_t): Mark the doc strings as Doxygen comments.

(svn_fs_lock2): Correct a <tt> closing tag to </tt>.

(svn_fs_lock): Mark the doc string as a Doxygen comment.

(svn_fs_unlock2): Correct cross-references. s/pool/scratch_pool/.

* subversion/include/svn_mergeinfo.h

(SVN_MERGEINFO_NONINHERITABLE_STR): Mark the doc string as a Doxygen


(svn_rangelist_t, svn_mergeinfo_t, svn_mergeinfo_catalog_t): Give each of

these types its own Doxygen doc string.

* subversion/include/svn_path.h

(svn_path_illegal_path_escape): Mark the doc string as a Doxygen comment.

* subversion/include/svn_ra.h

(svn_ra_get_file_revs2): s/@handler/@a handler/g.

* subversion/include/svn_repos.h

(svn_repos_get_logs4): Correct a cross-reference.

(svn_repos_get_file_revs2): s/@handler/@a handler/g.

* subversion/include/svn_types.h

(svn_move_behavior_t): Mark each member's doc string as a Doxygen comment.

* subversion/include/svn_wc.h

(svn_wc_conflict_description3_t): Mark a member's doc string as a Doxygen




svn_wc_conflict_description_create_tree2): Mark the doc string as a

Doxygen comment, and use () notation for a function cross-reference.

(svn_wc_conflict_resolver_func2_t): Mark the doc string as a Doxygen


  1. … 9 more files in changeset.
Following r1543145 (fixing a 'strange error' caused by a missing sentinel

argument), tag the functions that require a sentinel null as their last

argument such that GCC will warn if the sentinel is missing.

This attribute, however, only works (with GCC and Clang) where the sentinel

argument is of a pointer type, so it doesn't help in the specific case of

r1543145 because SVN_NO_ERROR is currently declared as a plain '0', but it

does help in these few other cases.

I enabled this for GCC >= 4.0, according to anecdotal evidence, and for

Clang when Clang claims it is available. I don't see an equivalent attribute

for MSC or other compilers but if there is one we can add it later.

* subversion/include/svn_types.h


* subversion/include/svn_dirent_uri.h

(svn_dirent_join_many): Tag.

* subversion/include/svn_path.h

(svn_path_join_many): Tag.

* subversion/include/svn_xml.h

(svn_xml_make_open_tag): Tag.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__add_open_tag_buckets): Tag.

  1. … 4 more files in changeset.
Introduce a null-pointer constant that we can use as a termination sentinel

in variable argument lists. This avoids the ugliness of writing

"(char *) NULL" all over the place.

* subversion/include/svn_types.h (SVN_VA_NULL): New symbol.

* subversion/include/svn_dirent_uri.h (svn_dirent_join_many),

subversion/include/svn_path.h (svn_path_join_many),

subversion/include/svn_xml.h (svn_xml_make_open_tag):

Update docstrings, mentioning SVN_VA_NULL as the argument list terminator.

[Lots of implementation files]: Replace typecast-NULL with SVN_VA_NULL in

function calls with variable argument lists.

  1. … 89 more files in changeset.
Expose a static helper function in libsvn_subr/path.c as a public API.

Copies of this function exist in libsvn_fs_fs and libsvn_repos, and

subsequent commits will remove this code duplication. I'm committing this

change in isolation to simplify potential future merges to 1.8.x/1.7.x.

* subversion/include/svn_path.h

(svn_path_illegal_path_escape): Declare.

* subversion/libsvn_subr/path.c

(illegal_path_escape): Rename to ...

(svn_path_illegal_path_escape): ... this. Docstring has been moved to

the public header. Otherwise unchanged.

(svn_path_check_valid): Update caller.

  1. … 1 more file in changeset.
* subversion/include/svn_path.h


svn_path_resolve_repos_relative_url): Docstring updates only.

Merge the in-repo-authz branch back to trunk.


  1. … 23 more files in changeset.
Doc-string only change.

* subversion/include/svn_path.h

(svn_path_join): there is no svn_uri_join to refer to

* subversion/include/svn_path.h

(svn_path_compare_paths): Extend comment.

* subversion/include/svn_sorts.h

(svn_sort_compare_items_as_paths): Extend comment.

  1. … 1 more file in changeset.
Eliminate svn_fspath__is_ancestor() and svn_urlpath__is_ancestor(); use

svn_fspath__skip_ancestor() and svn_urlpath__skip_ancestor() instead.

* subversion/include/private/svn_fspath.h

(svn_fspath__is_ancestor, svn_urlpath__is_ancestor): Remove.

* subversion/include/svn_path.h

(svn_path_is_ancestor): Update recommendations in the deprecation clause.

* subversion/libsvn_subr/dirent_uri.c

(svn_fspath__is_ancestor): Remove.

* subversion/libsvn_client/mergeinfo.c

(find_nearest_ancestor, filter_log_entry_with_rangelist): Use

svn_fspath__skip_ancestor() instead of __is_ancestor().

* subversion/libsvn_repos/log.c

(get_combined_mergeinfo_changes, send_log): Same.

* subversion/libsvn_subr/mergeinfo.c

(svn_mergeinfo__remove_prefix_from_catalog): Same.

* subversion/libsvn_ra_neon/merge.c

(handle_resource): Use svn_urlpath__skip_ancestor() instead of


* subversion/libsvn_ra_serf/merge.c

(end_merge): Same.

  1. … 7 more files in changeset.
Eliminate svn_relpath__is_child(); use svn_relpath_skip_ancestor() instead.

* subversion/include/svn_dirent_uri.h

(svn_relpath__is_child): Remove.

* subversion/libsvn_subr/dirent_uri.c

(svn_relpath__is_child): Remove.

(svn_fspath__is_child): Use is_child() directly instead of


* subversion/include/svn_path.h

(svn_path_is_child): Update the recommendations in the deprecation clause.

* subversion/libsvn_fs_fs/tree.c

(prev_location, history_prev): Use _skip_ancestor instead of __is_child.

In these cases, this is a simplification because special handling of the

"" result (when parent == child) is eliminated.

* subversion/libsvn_ra_neon/commit.c

(get_child_tokens): Same. If the result is "", don't use it. Eliminate the

subpool as it is now unused.

* subversion/libsvn_ra_serf/commit.c

(checkout_file): Same. A result of "" is never expected.

* subversion/libsvn_repos/replay.c

(path_driver_cb_func): Same. Assert the result is never "".

* subversion/libsvn_wc/adm_crawler.c

(report_revisions_and_depths): Same. A return value of "" will always fail

the following test just as NULL would.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_get_not_present_descendants): Same. A result of "" is never

expected. Duplicate the result to achieve the required lifetime.

* subversion/tests/libsvn_subr/dirent_uri-test.c

(test_relpath_is_child): Remove. Anyway, this was accidentally testing

svn_dirent_is_child(); nothing was testing svn_relpath__is_child().

  1. … 9 more files in changeset.
Remove svn_relpath_local_style() and make svn_relpath_internal_style()

private, to avoid these new APIs becoming public in 1.7, as they confuse

relpaths with dirents. The only two uses of the former were bogus, and the

latter is only used in svndumpfilter to provide tolerance to wrong user


* subversion/include/svn_dirent_uri.h,


(svn_relpath_local_style): Remove.

(svn_relpath_internal_style): Rename to svn_relpath__internal_style().

* subversion/include/svn_path.h

(svn_path_internal_style, svn_path_local_style): Remove references to

the relpath variants.

* subversion/libsvn_ra_neon/commit.c

(checkout_resource): Don't call svn_relpath_local_style(), as the argument

is not a local path.

* subversion/libsvn_ra_neon/fetch.c

(cdata_handler): Don't call svn_relpath_local_style(), as the argument

is not a local path (it's a property name).

* subversion/svndumpfilter/main.c

(main): Adjust the call to svn_relpath_internal_style().

* subversion/tests/libsvn_subr/dirent_uri-test.c

(test_relpath_local_style): Remove.

(test_relpath_internal_style): Adjust the call to


  1. … 6 more files in changeset.
* subversion/include/svn_path.h

In the doc strings of deprecated functions, move the paragraph offering

suggested replacements into the '@deprecated' paragraph, where that

information is expected.

Update the doc strings of deprecated svn_path_* functions to suggest the

svn_fspath__* replacement option where appropriate. Also in that part of

the doc strings, stop saying what kind of paths each replacement function is

suitable for, since the reader must investigate them anyway, and make a few

other clarifications.

* subversion/include/svn_path.h

(*): As above.

(svn_path_join_many): Note the option of a sequence of *_join() calls.

(svn_path_get_absolute): Note that svn_dirent_get_absolute() is only

suitable for a non-URL input.

(svn_path_split_if_file): Note that no direct replacement is provided.

Improved the documentation of deprecated functions by providing links

to the deprecating functions.

* subversion/include/svn_path.h

(svn_path_internal_style, svn_path_local_style,

svn_path_join, svn_path_join_many,

svn_path_basename, svn_path_dirname,

svn_path_split, svn_path_canonicalize,

svn_path_is_canonical, svn_path_get_longest_ancestor,

svn_path_get_absolute, svn_path_split,

svn_path_condense_targets, svn_path_is_child,

svn_path_is_ancestor, svn_path_url_add_component): Provide reference to

deprecating functions.

Patch by: Arwin Arni <arwin{_AT_}>

* subversion/include/svn_path.h

Revert the accidental addition in r1030136 of private annotations.

Split out from svn_wc_add4() the functionality for integrating a nested

checkout as a scheduled copy.

* subversion/include/svn_wc.h

(svn_wc__integrate_nested_wc_as_copy): New function.

* subversion/libsvn_wc/adm_ops.c

(integrate_nested_wc_as_copy): New function, extracted from ...

(svn_wc_add4): ... here.

(svn_wc__integrate_nested_wc_as_copy): New function.

* subversion/libsvn_client/copy.c

(repos_to_wc_copy_single): Use the new function instead of svn_wc_add4().

* subversion/include/svn_path.h

Add some private annotations to the doc strings. (An accidental, unrelated


  1. … 3 more files in changeset.
Test out my new and fancy ASF commit priviledges by changing the copyright

wording in our license headers to reflect ownership by the ASF.


Change terminology to ASF, and update a link.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the ASF, and update the project website.

* everywhere:

Change license text to reflect ASF ownership.

  1. … 891 more files in changeset.
Scrub trailing whitespace throughout (see r35894).

  1. … 146 more files in changeset.
Continuing work on issue #1711, deprecate a bunch of svn_path_*()

functions. All callers should be updated to call either svn_dirent_*()

(for local paths) or svn_uri_*() (for URLs and other paths).

Note that for WC-NG we are switching to absolute dirents everywhere in

libsvn_wc; so further cleanup is welcome :)

* subversion/include/svn_path.h

(svn_path_join, svn_path_join_many, svn_path_canonicalize,

svn_path_is_canonical, svn_path_get_longest_ancestor,

svn_path_condense_targets, svn_path_is_child, svn_path_is_ancestor):

Deprecate functions.

Relicense Subversion under the Apache License, Version 2.0.

* NOTICE: New.



subversion/LICENSE: Remove.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the SVN Corp, and that it contains contributions from

many people, as referenced in NOTICE.

* subversion/bindings/swig/python/LICENSE_FOR_PYTHON_BINDINGS:

Relicense the SVN parts under Apache 2.0.

* everywhere:

Change copyright notices in file headers to reflect the Apache 2.0 license.

  1. … 882 more files in changeset.
Remove warning of 'redundant redeclaration of function'.

* subversion/include/svn_path.h

(): Include 'svn_dirent_uri.h', to make use of ifndef SVN_DIRENT_URI_H.

For the benefit of other OCD-driven individuals, mark a couple more svn_path_*

functions as deprecated.

* subversion/include/svn_path.h

(svn_path_internal_style, svn_path_local_style): Deprecated.

Deprecate svn_path_get_absolute() in favor of svn_dirent_get_absolute().

Since the wc_db APIs mostly use absolute paths, we're calling this function

often, and deprecating now helps us be sure to call the right one going


This creates a number of new deprecation warnings, which will be rectified

shortly by any number of OCD-compelled committers.

* subversion/include/svn_path.h

(svn_path_get_absolute): Mark as deprecated.

Spelling and grammar tweaks (in a comment) only.
Following up on r36221: (and part of issue #1711 and #2556)

* subversion/include/svn_path.h

(svn_path_split_if_file): Deprecate function.

(Never used in our libraries since at least 1.0)

* subversion/libsvn_subr/deprecated.c

(SVN_EMPTY_PATH): Copy #define here

(svn_path_split, svn_path_split_if_file): Move here from path.c

* subversion/libsvn_subr/io.c

(global): Include svn_dirent_uri.h,

(svn_io_copy_file, svn_io_file_move): Use svn_dirent_dirname().

(svn_io_dir_walk): Use svn_dirent_basename().

(svn_io_write_version_file): Use svn_dirent_dirname().

* subversion/libsvn_subr/opt.c

(global): Include svn_dirent_uri.h

(svn_opt__args_to_target_array): Use svn_dirent_basename instead

of svn_path_basename.

* subversion/libsvn_subr/path.c

(svn_path_split, svn_path_split_if_file): Move to deprecated.c

* subversion/libsvn_subr/subst.c

(global): Include svn_dirent_uri.h

(keyword_printf): Use svn_uri_basename().

(detranslate_special_file, create_special_file_from_stream,

svn_subst_copy_and_translate3): Use svn_dirent_dirname().

  1. … 5 more files in changeset.
* subversion/include/svn_path.h

(svn_path_basename, svn_path_dirname, svn_path_split):

Following up on r36219, deprecate these functions properly.

For issue #1711 and #2556: In libsvn_wc, update all usages of svn_path_split,

svn_path_dirname and svn_path_basename to either svn_dirent_* (local paths)

or svn_uri_* (urls or repository paths).

This prepares the WC library to behave correctly on working copies in Windows

drive and UNC network share roots.

* subversion/libsvn_subr/props.c

(open_reject_tmp_stream, install_props_file,

svn_wc__loggy_revert_props_create, maybe_generate_propconflict,

svn_wc__merge_props, wcprop_get, svn_wc__wcprop_set, svn_wc_prop_list,

svn_wc_prop_set3, svn_wc_get_prop_diffs):

* subversion/libsvn_subr/crop.c


* subversion/libsvn_subr/util.c

(svn_wc__ensure_directory, svn_wc__path_switched):

* subversion/libsvn_subr/adm_ops.c

(svn_wc__do_update_cleanup, svn_wc_maybe_set_repos_root, svn_wc_delete3,

svn_wc_add3, revert_entry, revert_internal,

svn_wc_remove_from_revision_control, resolve_found_entry_callback):

* subversion/libsvn_subr/status.c

(assemble_status, get_dir_status, tweak_statushash, make_dir_baton

make_file_baton, delete_entry, svn_wc_status2):

* subversion/libsvn_subr/adm_files.c

(svn_wc__sync_text_base, svn_wc__text_base_path, svn_wc__text_revert_path

svn_wc__prop_path, svn_wc__open_writable_base, svn_wc__write_old_wcprops):

* subversion/libsvn_subr/lock.c

(probe, svn_wc_adm_probe_retrieve, svn_wc_adm_open_anchor):

* subversion/libsvn_subr/update_editor.c

(in_deleted_tree, in_skipped_tree, make_dir_baton, make_file_baton

already_in_a_tree_conflict, set_copied_callback,

schedule_existing_item_for_re_add, do_entry_deletion, delete_entry,

add_directory, absent_file_or_dir, locate_copyfrom, choose_base_paths

merge_file, check_wc_root, svn_wc_get_actual_target,


* subversion/libsvn_subr/questions.c

(svn_wc__text_modified_internal_p, svn_wc_conflicted_p2):

* subversion/libsvn_subr/translate.c


* subversion/libsvn_subr/merge.c

(create_name_preserving_tmp_file, preserve_pre_merge_files,

merge_binary_file, svn_wc__merge_internal):

* subversion/libsvn_subr/tree_conflicts.c

(svn_wc__write_tree_conflicts, svn_wc__tree_conflict_exists,

svn_wc__loggy_del_tree_conflict, svn_wc__get_tree_conflict):

* subversion/libsvn_subr/diff.c


* subversion/libsvn_subr/entries.c

(svn_wc_entry, visit_tc_too_error_handler, svn_wc_mark_missing_deleted):

* subversion/libsvn_subr/copy.c


* subversion/libsvn_subr/adm_crawler.c

(restore_file, svn_wc_crawl_revisions4):

* subversion/libsvn_subr/log.c

(log_do_committed, log_do_add_tree_conflict, handle_killme):

Update svn_path_split, svn_path_dirname and svn_path_basename

calls and include svn_dirent_uri.h where needed.

* subversion/libsvn_wc/update_editor.c

(in_deleted_tree, in_skipped_tree): Also check for other roots.

* subversion/include/svn_path.h

(svn_path_basename, svn_path_dirname, svn_path_split): Temporary deprecate

these functions. (Cleaned up in r36221).

  1. … 17 more files in changeset.
* subversion/include/svn_path.h

(svn_path_url_add_component): Indentation tweaks only.

Stop recanonicalizing the base url on every call of svn_path_url_add_component

by introducing svn_path_url_add_component2 that assumes the caller already did


(Our working copy library guarantees all url entries are canonicalized for

new (tested) and old (recanonicalize on load) working copy formats, but

we are recanonicalizing every single path continuously during svn update even

without changes).

This change reduces the user time of svn update time by about 3 or 4% here.

(about 1% wallclock time in my experiment. ra_neon, remote repository)

Update all callers except for the RA layers that currently

might assume the canonicalization.

* subversion/include/svn_path.h

(svn_path_url_add_component2): New function

(svn_path_url_add_component): Deprecate function.

* subversion/libsvn_subr/path.c

(svn_path_url_add_component2): New function.

(svn_path_url_add_component): Move to ...

* subversion/libsvn_subr/deprecated.c

(svn_path_url_add_component): ... here.

* subversion/svn/util.c


* subversion/libsvn_wc/crop.c


* subversion/libsvn_wc/util.c


* subversion/libsvn_wc/adm_ops.c

(tweak_entries, svn_wc_add3):

* subversion/libsvn_wc/status.c

(tweak_statushash, find_dir_url, make_file_baton, close_file):

* subversion/libsvn_wc/update_editor.c

(make_dir_baton, make_file_baton, delete_entry, add_directory,

svn_wc_get_switch_editor3, check_wc_root, svn_wc_add_repos_file3):

* subversion/libsvn_wc/entries.c

(take_from_entry, write_entry, write_entry_xml):

* subversion/libsvn_wc/adm_crawler.c

(report_revisions_and_depths, svn_wc_crawl_revisions4):

* subversion/libsvn_client/externals.c


* subversion/libsvn_client/merge.c

(tree_conflict, filter_self_referential_mergeinfo, merge_file_added

merge_dir_added, populate_remaining_ranges, get_mergeinfo_walk_cb,

combine_range_with_segments, normalize_merge_sources, svn_client_merge3,

ensure_all_missing_ranges_are_phantoms, calculate_left_hand_side):

* subversion/svn/util.c

(svn_cl__node_description): Update callers.

  1. … 13 more files in changeset.