Checkout Tools
  • last updated 14 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Follow up to r1849080: move a private function out of a public header.

* subversion/include/svn_dirent_uri.h: Update file-level docstrin.

(svn_relpath__internal_style): Removed.

* subversion/include/private/svn_dirent_uri_private.h: New file.

(svn_relpath__make_internal): Renamed from svn_relpath__internal_style.

* subversion/libsvn_subr/dirent_uri.c,

subversion/svndumpfilter/svndumpfilter.c,

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

subversion/bindings/javahl/native/Path.cpp:

Include private/svn_dirent_uri_private.h and use svn_relpath__make_internal

instead of svn_relpath__internal_style.

* subversion/bindings/swig/python/svn/core.py

(__all__): Remove mention of svn_relpath__internal_style from the comment.

  1. … 6 more files in changeset.
Change a private function's signature to prevent potential assertions.

* subversion/include/svn_dirent_uri.h

(svn_relpath__internal_style): Change prototype so that the function can

return an error instead of aborting if anything goes wrong.

* subversion/libsvn_subr/dirent_uri.c

(svn_relpath__internal_style): Update the implementation.

* subversion/bindings/javahl/native/Path.cpp (Relpath::initfunc),

* subversion/svndumpfilter/svndumpfilter.c (sub_main),

* subversion/tests/libsvn_subr/dirent_uri-test.c (test_relpath_internal_style):

Updated all callers.

  1. … 4 more files in changeset.
Add a safe variant of svn_dirent_internal_style().

* subversion/include/svn_dirent_uri.h

(svn_dirent_internal_style): Update docstring, pointing to ...

(svn_dirent_internal_style_safe): ... this new prototype.

* subversion/libsvn_subr/dirent_uri.c

(svn_dirent_internal_style_safe): Implement.

  1. … 1 more file in changeset.
Make some "mandatory" assertions more useful for debugging.

* subversion/libsvn_subr/dirent_uri.c

(svn_uri_canonicalize,

svn_relpath_canonicalize,

svn_dirent_canonicalize): Make the assertion messages more descriptive.

Make sure that the "safe" canonicalization functions won't abort.

* subversion/include/svn_dirent_uri.h

(svn_dirent_canonicalize_safe,

svn_relpath_canonicalize_safe,

svn_uri_canonicalize_safe): Update docstrings.

* subversion/libsvn_subr/dirent_uri.c

(canonicalize): Change signature to return an svn_error_t.

Remove both assertions and return an error instead.

(canonicalize_dirent): New private helper function.

(svn_dirent_canonicalize,

svn_dirent_canonicalize_safe,

svn_relpath_canonicalize,

svn_relpath_canonicalize_safe,

svn_uri_canonicalize,

svn_uri_canonicalize_safe): Update implementations.

  1. … 1 more file in changeset.
Add new dirent, relpath and URI canonicalization functions that

check and report canonicalization failures.

* subversion/include/svn_dirent_uri.h: Update top-level docstring.

(svn_dirent_canonicalize_safe,

svn_relpath_canonicalize_safe,

svn_uri_canonicalize_safe): New prototypes.

* subversion/include/svn_error_codes.h

(SVN_ERR_CANONICALIZATION_FAILED): New error code.

* subversion/libsvn_subr/dirent_uri.c

(svn_dirent_canonicalize_safe,

svn_relpath_canonicalize_safe,

svn_uri_canonicalize_safe): Implement..

  1. … 2 more files in changeset.
Make the port requirements of svn_uri_is_canonical() match the

port guarantees made by svn_uri_canonicalize(). This fixes a

client SEGV when handling invalid URLs in svn:externals.

The function svn_uri_canonicalize() always returns canonical URLs,

by definition, but being canonical does not guarantee that an URL

is valid. The function svn_uri_is_canonical() should always return

TRUE on canonical URLs even if the URL is invalid, i.e. it should

not be more stringent that svn_uri_canonicalize().

* subversion/libsvn_subr/dirent_uri.c

(svn_uri_is_canonical): Relax port checks to match svn_uri_canonicalize.

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

(uri_canonical_tests): Add some invalid URLs that can still be canonical.

* subversion/tests/cmdline/externals_tests.py

(invalid_uris_in_repo): New.

(test_list): Add new tests.

* subversion/tests/cmdline/externals_tests_data/invalid_uris_in_repo.dump: New.

  1. … 4 more files in changeset.
Revert r1758069. See 1758269 for a better fix.

[ Note from the future: Reverted in 1758271 ]

Fix issue #4652 which shows how to trigger an assertion failure in

svn_dirent_get_absolute() by passing invalid input on the command line.

Report a proper error message instead.

* subversion/libsvn_subr/dirent_uri.c

(svn_dirent_get_absolute): If the caller passed a URL, return an error.

Following up on r1692262, fix canonicalizing the separator directly behind

a windows drive letter usage.

If the separator in this location was %2F it wouldn't be converted to '/',

unlike in other locations of the url... instead it would be converted to %25,

which is the escaped version of '%'.

* subversion/libsvn_subr/dirent_uri.c

(canonicalize): Handle a final '/' in the same way as the generic code.

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

(uri_canonical_tests): Extend testcase.

  1. … 1 more file in changeset.
Fix an ugly case where svn_uri_canonicalize() returned a not canonical

uri when invoked with a Window specific drive relative url.

Using repository urls like 'file:///c:hi' or 'file:///c:hi/repos' would

raise not-canonical assertions even though they got through the canonicalize

function.

* subversion/libsvn_subr/dirent_uri.c

(canonicalize): Canonicalize drive relative file urls to a canonical form

instead of leaving them not canonical.

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

(uri_canonical_tests): Extend testset.

  1. … 1 more file in changeset.
In the file:/// to dirent conversion code, handle a '\' directly after a

Windows drive letter at the start of a path like a '/' dirent separator.

This avoids handling these dirents as (drive) relative paths, which

causes unexpected behavior in functions that typically expect to only

see rooted paths.

'\' characters further on in the path are kept as-is, because the '\'

character is valid inside some repository paths, even though not all

ra implementations might handle these.

Note that this change explicitly doesn't change the uri canonicalization

rules, as that would require a working copy format bump. And therefore

it still allows file://A:repos/dir style paths, but this form causes far

less confusion than file://A:\repos\dir being handled as a single component.

* subversion/libsvn_subr/dirent_uri.c

(svn_uri_get_dirent_from_file_url): Handle '\' characters directly

after a drive reference as '/'.

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

(test_dirent_from_file_url): Add regression tests.

  1. … 1 more file in changeset.
Rename public API svn_relpath_limit() to svn_relpath_prefix().

No functional change intended.

* subversion/include/svn_dirent_uri.h

(svn_relpath_limit): Rename to ...

(svn_relpath_prefix): ... this.

* subversion/libsvn_subr/dirent_uri.c

(svn_relpath_limit,

svn_relpath_prefix): Sync. implementation with declaration.

* subversion/libsvn_wc/wc_db.c

(read_children_info,

read_single_info,

scan_addition,

svn_wc__db_scan_moved,

svn_wc__db_scan_moved_to_internal): Update callers.

* subversion/libsvn_wc/wc_db_update_move.c

(create_node_tree_conflict,

bump_moved_layer,

svn_wc__db_op_raise_moved_away_internal): Same.

  1. … 3 more files in changeset.
Apply the standard pre-branch whitespace cleanup via

tools/dev/remove-trailing-whitespace.zsh

There should be no functional changes.

* .ycm_extra_conf.py

* build/generator/gen_win.py

* build/generator/gen_win_dependencies.py

* subversion/bindings/javahl/native/EditorProxy.h

* subversion/bindings/javahl/native/StateReporter.cpp

* subversion/bindings/javahl/native/org_apache_subversion_javahl_util_ConfigImpl_Category.cpp

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c

* subversion/bindings/swig/ruby/test/test_fs.rb

* subversion/bindings/swig/ruby/test/util.rb

* subversion/bindings/swig/ruby/test/windows_util.rb

* subversion/include/private/svn_fs_fs_private.h

* subversion/include/private/svn_packed_data.h

* subversion/include/private/svn_repos_private.h

* subversion/include/private/svn_sorts_private.h

* subversion/include/private/svn_subr_private.h

* subversion/include/private/svn_wc_private.h

* subversion/include/svn_auth.h

* subversion/include/svn_cache_config.h

* subversion/include/svn_client.h

* subversion/include/svn_cmdline.h

* subversion/include/svn_diff.h

* subversion/include/svn_fs.h

* subversion/include/svn_io.h

* subversion/include/svn_ra.h

* subversion/include/svn_repos.h

* subversion/include/svn_string.h

* subversion/libsvn_client/blame.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/commit_util.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_client/externals.c

* subversion/libsvn_client/log.c

* subversion/libsvn_client/patch.c

* subversion/libsvn_client/ra.c

* subversion/libsvn_client/update.c

* subversion/libsvn_delta/svndiff.c

* subversion/libsvn_diff/parse-diff.c

* subversion/libsvn_fs/fs-loader.c

* subversion/libsvn_fs_base/lock.c

* subversion/libsvn_fs_fs/cached_data.c

* subversion/libsvn_fs_fs/fs_fs.c

* subversion/libsvn_fs_fs/hotcopy.c

* subversion/libsvn_fs_fs/id.c

* subversion/libsvn_fs_fs/index.c

* subversion/libsvn_fs_fs/index.h

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_fs/low_level.c

* subversion/libsvn_fs_fs/low_level.h

* subversion/libsvn_fs_fs/pack.c

* subversion/libsvn_fs_fs/recovery.c

* subversion/libsvn_fs_fs/rev_file.c

* subversion/libsvn_fs_fs/revprops.c

* subversion/libsvn_fs_fs/revprops.h

* subversion/libsvn_fs_fs/stats.c

* subversion/libsvn_fs_fs/transaction.c

* subversion/libsvn_fs_fs/tree.c

* subversion/libsvn_fs_fs/verify.c

* subversion/libsvn_fs_x/cached_data.c

* subversion/libsvn_fs_x/changes.c

* subversion/libsvn_fs_x/dag.h

* subversion/libsvn_fs_x/fs.h

* subversion/libsvn_fs_x/fs_id.c

* subversion/libsvn_fs_x/fs_x.c

* subversion/libsvn_fs_x/hotcopy.c

* subversion/libsvn_fs_x/hotcopy.h

* subversion/libsvn_fs_x/index.c

* subversion/libsvn_fs_x/index.h

* subversion/libsvn_fs_x/lock.c

* subversion/libsvn_fs_x/lock.h

* subversion/libsvn_fs_x/low_level.c

* subversion/libsvn_fs_x/low_level.h

* subversion/libsvn_fs_x/noderevs.c

* subversion/libsvn_fs_x/pack.c

* subversion/libsvn_fs_x/reps.c

* subversion/libsvn_fs_x/rev_file.c

* subversion/libsvn_fs_x/revprops.c

* subversion/libsvn_fs_x/revprops.h

* subversion/libsvn_fs_x/string_table.c

* subversion/libsvn_fs_x/string_table.h

* subversion/libsvn_fs_x/transaction.c

* subversion/libsvn_fs_x/tree.c

* subversion/libsvn_fs_x/util.c

* subversion/libsvn_fs_x/verify.c

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_ra_serf/ra_serf.h

* subversion/libsvn_ra_serf/serf.c

* subversion/libsvn_ra_serf/update.c

* subversion/libsvn_ra_serf/util.c

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/libsvn_repos/authz_pool.c

* subversion/libsvn_repos/config_pool.c

* subversion/libsvn_repos/dump.c

* subversion/libsvn_repos/fs-wrap.c

* subversion/libsvn_repos/log.c

* subversion/libsvn_subr/bit_array.c

* subversion/libsvn_subr/cache-membuffer.c

* subversion/libsvn_subr/config.c

* subversion/libsvn_subr/dirent_uri.c

* subversion/libsvn_subr/fnv1a.c

* subversion/libsvn_subr/gpg_agent.c

* subversion/libsvn_subr/hash.c

* subversion/libsvn_subr/io.c

* subversion/libsvn_subr/object_pool.c

* subversion/libsvn_subr/packed_data.c

* subversion/libsvn_subr/prefix_string.c

* subversion/libsvn_subr/sorts.c

* subversion/libsvn_subr/sqlite.c

* subversion/libsvn_subr/subst.c

* subversion/libsvn_subr/sysinfo.c

* subversion/libsvn_subr/types.c

* subversion/libsvn_subr/utf.c

* subversion/libsvn_subr/utf8proc/utf8proc_data.c

* subversion/libsvn_subr/x509info.c

* subversion/libsvn_wc/diff.h

* subversion/libsvn_wc/props.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/wc.h

* subversion/libsvn_wc/wc_db.c

* subversion/libsvn_wc/wc_db.h

* subversion/mod_dav_svn/lock.c

* subversion/mod_dav_svn/mod_dav_svn.c

* subversion/mod_dav_svn/status.c

* subversion/svn/auth-cmd.c

* subversion/svn/info-cmd.c

* subversion/svn/mergeinfo-cmd.c

* subversion/svn/notify.c

* subversion/svn/propget-cmd.c

* subversion/svn/svn.c

* subversion/svnadmin/svnadmin.c

* subversion/svnserve/logger.c

* subversion/svnserve/serve.c

* subversion/svnserve/server.h

* subversion/svnserve/svnserve.c

* subversion/tests/cmdline/blame_tests.py

* subversion/tests/cmdline/checkout_tests.py

* subversion/tests/cmdline/commit_tests.py

* subversion/tests/cmdline/export_tests.py

* subversion/tests/cmdline/externals_tests.py

* subversion/tests/cmdline/lock_tests.py

* subversion/tests/cmdline/merge_tests.py

* subversion/tests/cmdline/merge_tree_conflict_tests.py

* subversion/tests/cmdline/move_tests.py

* subversion/tests/cmdline/redirect_tests.py

* subversion/tests/cmdline/stat_tests.py

* subversion/tests/cmdline/svnadmin_tests.py

* subversion/tests/cmdline/switch_tests.py

* subversion/tests/cmdline/update_tests.py

* subversion/tests/libsvn_client/client-test.c

* subversion/tests/libsvn_client/mtcc-test.c

* subversion/tests/libsvn_fs/fs-test.c

* subversion/tests/libsvn_fs/locks-test.c

* subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c

* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

* subversion/tests/libsvn_fs_x/fs-x-pack-test.c

* subversion/tests/libsvn_fs_x/string-table-test.c

* subversion/tests/libsvn_ra/ra-test.c

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

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

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

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

* subversion/tests/libsvn_subr/packed-data-test.c

* subversion/tests/libsvn_subr/priority-queue-test.c

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

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

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

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

* subversion/tests/libsvn_wc/op-depth-test.c

* subversion/tests/svn_test_main.c

* tools/dev/benchmarks/RepoPerf/copy_repo.py

* tools/dev/benchmarks/RepoPerf/win_repo_bench.py

* tools/dev/build-svn-deps-win.pl

* tools/dev/fsfs-access-map.c

* tools/dev/po-merge.py

* tools/dev/x509-parser.c

* tools/diff/diff.c

* tools/dist/backport.pl

* tools/dist/backport_tests.py

* tools/hook-scripts/mailer/mailer.py

* tools/server-side/svnpubsub/daemonize.py

* win-tests.py

Remove unneeded whitespace via script.

  1. … 184 more files in changeset.
Provide a new function svn_cert__match_dns_identity() to handling

matching hostnames in X.509 certs as described in RFC 6125.

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

* subversion/include/private/svn_cert.h: New file.

* subversion/libsvn_subr/dirent_uri.c

(svn_cert__match_dns_identity): New function.

* subversion/libsvn_ra_serf/util.c

(ssl_server_cert): Use svn_cert__match_dns_identity() instead of

apr_fnmatch().

  1. … 3 more files in changeset.
Fix some typos.

* CHANGES:

* contrib/cgi/mirror_dir_through_svn.cgi:

* contrib/client-side/emacs/psvn.el:

* contrib/client-side/svn2cl/svn2cl.xsl:

* contrib/hook-scripts/remove-zombie-locks.py:

* contrib/hook-scripts/syntax-check.sh:

* contrib/server-side/svnstsw/configure.ac:

* notes/assurance.txt:

* notes/fs-improvements.txt:

* notes/knobs:

* notes/merge-tracking/func-spec.html:

* notes/merge-tracking/summit-survey.html:

* notes/wc-ng/design:

* notes/wc-ng/locking:

* notes/wc-ng/nodes:

* subversion/bindings/ctypes-python/csvn/core/__init__.py:

* subversion/bindings/ctypes-python/examples/example.py:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java:

* subversion/bindings/javahl/src/org/tigris/subversion/javahl/ConflictResult.java:

* subversion/bindings/javahl/src/org/tigris/subversion/javahl/PropertyData.java:

* subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java:

* subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java:

* subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java:

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java:

* subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java:

* subversion/bindings/swig/include/proxy_apr.swg:

* subversion/bindings/swig/perl/native/Client.pm:

* subversion/bindings/swig/perl/native/t/3client.t:

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c:

* subversion/include/private/svn_diff_tree.h:

* subversion/include/private/svn_io_private.h:

* subversion/include/private/svn_ra_svn_private.h:

* subversion/include/private/svn_string_private.h:

* subversion/include/svn_io.h:

* subversion/include/svn_iter.h:

* subversion/include/svn_props.h:

* subversion/libsvn_client/copy_foreign.c:

* subversion/libsvn_client/diff.c:

* subversion/libsvn_client/merge.c:

* subversion/libsvn_delta/xdelta.c:

* subversion/libsvn_diff/diff4.c:

* subversion/libsvn_diff/util.c:

* subversion/libsvn_fs/editor.c:

* subversion/libsvn_fs_fs/index.c:

* subversion/libsvn_fs_fs/temp_serializer.c:

* subversion/libsvn_fs_fs/temp_serializer.h:

* subversion/libsvn_fs_fs/transaction.c:

* subversion/libsvn_fs_fs/tree.c:

* subversion/libsvn_fs_x/fs.h:

* subversion/libsvn_fs_x/index.c:

* subversion/libsvn_fs_x/reps.c:

* subversion/libsvn_fs_x/temp_serializer.c:

* subversion/libsvn_fs_x/temp_serializer.h:

* subversion/libsvn_fs_x/transaction.c:

* subversion/libsvn_fs_x/tree.c:

* subversion/libsvn_ra_serf/README:

* subversion/libsvn_ra_svn/protocol:

* subversion/libsvn_repos/dump.c:

* subversion/libsvn_repos/hooks.c:

* subversion/libsvn_repos/load-fs-vtable.c:

* subversion/libsvn_subr/dirent_uri.c:

* subversion/libsvn_subr/io.c:

* subversion/libsvn_subr/opt.c:

* subversion/libsvn_subr/string.c:

* subversion/libsvn_subr/subst.c:

* subversion/libsvn_wc/entries.c:

* subversion/libsvn_wc/externals.c:

* subversion/libsvn_wc/lock.c:

* subversion/libsvn_wc/update_editor.c:

* subversion/svn/file-merge.c:

* subversion/svn/status-cmd.c:

* subversion/svnlook/svnlook.c:

* subversion/svnrdump/load_editor.c:

* subversion/svnserve/svnserve.c:

* subversion/tests/cmdline/commit_tests.py:

* subversion/tests/cmdline/diff_tests.py:

* subversion/tests/cmdline/merge_reintegrate_tests.py:

* subversion/tests/cmdline/merge_tests.py:

* subversion/tests/cmdline/revert_tests.py:

* subversion/tests/cmdline/svnauthz_tests.py:

* subversion/tests/cmdline/svntest/factory.py:

* subversion/tests/cmdline/svntest/main.py:

* subversion/tests/libsvn_repos/repos-test.c:

* subversion/tests/libsvn_subr/string-test.c:

* subversion/tests/libsvn_subr/utf-test.c:

* subversion/tests/libsvn_wc/db-test.c:

* subversion/tests/svn_test_main.c:

* tools/dev/trails.py: Fix some typos.

Patch by: Veres Lajos <vlajos{_AT_}gmail.com>

(I removed some changes that were wrong or can't be made due to API breakage)

  1. … 90 more files in changeset.
Replace a common allocating loop for obtaining an op_depth ancestor with a

generic helper function that does this smarter and without unnecessary

temporary allocations.

* subversion/include/svn_dirent_uri.h

(svn_relpath_limit): New function.

* subversion/libsvn_subr/dirent_uri.c

(svn_relpath_limit): New function.

* subversion/libsvn_wc/wc_db.c

(read_children_info,

read_single_info,

scan_addition_txn,

svn_wc__db_op_depth_moved_to): Replace loop until op-depth reached

constructions with a call to svn_relpath_limit.

  1. … 2 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.
Cast NULL to (char *) in vararg apr_pstrcat call.

* subversion/libsvn_delta/compat.c

(apply_change): here

* subversion/libsvn_fs/editor.c

(FSPATH): here

* subversion/libsvn_fs_fs/caching.c

(svn_fs_fs__initialize_caches): here

* subversion/libsvn_ra_serf/util_error.c

(svn_ra_serf__wrap_err): here

* subversion/libsvn_repos/commit.c

(ev2_check_authz): here

* subversion/libsvn_subr/config.c

(get_category_config): here

* subversion/libsvn_subr/dirent_uri.c

(svn_uri_get_dirent_from_file_url,

svn_uri_get_file_url_from_dirent): here

* subversion/libsvn_subr/error.c

(svn_error_wrap_apr): here

* subversion/libsvn_subr/io.c

(svn_io_run_diff3_3): here

* subversion/libsvn_subr/named_atomic.c

(svn_atomic_namespace__create,

svn_atomic_namespace__cleanup): here

* subversion/libsvn_subr/sysinfo.c

(debian_release): here

* subversion/mod_dav_svn/authz.c

(dav_svn__allow_read): here

* subversion/mod_dav_svn/repos.c

(deliver): here

* subversion/svn/info-cmd.c

(print_info_xml): here

* subversion/svnauth/svnauth.c

(subcommand_help): here

  1. … 14 more files in changeset.
Fix a bug in svn_uri_is_canonical; it would begin path verification at

the beginning of the host name, and if the host name was "." would think

it found an invalid path segment.

* subversion/libsvn_subr/dirent_uri.c (svn_uri_is_canonical):

Set the segment pointer to the beginning of the schema data before

verifying same, otherwise it would point at the beginning of the

host name.

* subversion/tests/libsvn_subr/dirent_uri-test.c (uri_canonical):

Add a couple cases that tripped up the buggy svn_uri_is_canonical.

  1. … 1 more file in changeset.
Another go at the relpath_is_canonical check. As it turns out, it is

much faster to check for "." and "//" elements in seperate runs due to

the simpler patterns that we check for.

* subversion/libsvn_subr/dirent_uri.c

(relpath_is_canonical): rework the scanner part

We frequently check relative paths for being canonical. Speed that up

by minimizing the number of conditional jumps on the hot path.

* subversion/libsvn_subr/dirent_uri.c

(relpath_is_canonical): minimize number of conditions in while() loop

* **/**

Run tools/dev/remove-trailing-whitespace.sh to remove all trailing whitespace

before we branch 1.8, like we did before creating previous branches.

No functional changes.

  1. … 199 more files in changeset.
Allow ipv6 addresses encoded in urls in the common

http://[::1]/svn/repos format.

by extending our canonical urls a tiny bit.

* subversion/libsvn_subr/dirent_uri.c

(canonicalize,

svn_uri_is_canonical): Allow lower case [] ipv6 addresses.

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

(uri_canonical_tests): Add a few ipv6 testcases.

  1. … 1 more file in changeset.
Resolve a specific case where calling svn_uri_get_file_url_from_dirent()

doesn't return a canonical uri.

* subversion/libsvn_subr/dirent_uri.c

(svn_uri_get_file_url_from_dirent): Make sure "C:/" returns a canonical url.

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

(test_file_url_from_dirent): Update expected result. Test result for being

canonical.

  1. … 1 more file in changeset.
Fix size and signedness conversion warnings.

* subversion/libsvn_subr/dirent_uri.c

(svn_dirent_is_root): use integer types consistently

Fix a memory read bug.

Found by: Tony Butt <tjb{_AT_}cea.com.au>

* subversion/libsvn_subr/dirent_uri.c

(svn_dirent_skip_ancestor, svn_relpath_skip_ancestor,

uri_skip_ancestor): Don't read beyond end of child.

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

(dirent_ancestor_tests, uri_ancestor_tests): Extend.

  1. … 1 more file in changeset.
* subversion/libsvn_subr/dirent_uri.c

(svn_dirent_get_absolute): Following up on r1354907, don't fall through

into the error condition.

* subversion/libsvn_subr/dirent_uri.c

(svn_dirent_get_absolute): Following up on r1354876, don't assume that

svn_dirent_is_absolute() completely checks that a path is absolute,

canonical and doesn't contain /../ sequences.

In fact it only checks the first few characters of a path to see if it

is not a relative path.

* subversion/libsvn_subr/dirent_uri.c

(svn_dirent_get_absolute): If the provided input is already absolute, just

return a copy of the input instead of asking APR to figure out the absolute

path.

I was hoping this would allow Subversion to run within a directory which

has been removed, as long the user passes absolute paths, but this fix

is not enough because 'svn' tries to get the absolute path for "" in

notify.c. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=678845