Checkout Tools
  • last updated 3 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1382762 is being indexed.

Make the expensive bits of version retreival optional.

* subversion/libsvn_subr/opt.h (svn_opt__get_version_info):

Change prototype: add verbose flag.

* subversion/libsvn_subr/opt.h (svn_opt__get_version_info):

Gather runtime system info only when verbose is set.

(svn_opt_print_help4): Update.

* subversion/libsvn_subr/deprecated.c (svn_opt_print_help): Update.

  1. … 2 more files in changeset.
Followup to r1379689: gather version and system information in a structure

instead of a huge string, and make combining it to stdout a separate step.

* subversion/libsvn_subr/sysinfo.h: Inclulde apr_tables.h.

(svn_sysinfo__linked_lib_t): New struct type.

(svn_sysinfo__linked_libs): Return an APR array of svn_sysinfo__linked_lib_t

instead of a preconstructed string.

(svn_sysinfo__loaded_lib_t): New struct type.

(svn_sysinfo__loaded_libs): Return an APR array of svn_sysinfo__loaded_lib_t

instead of a preconstructed string.

* subversion/libsvn_subr/sysinfo.c (svn_sysinfo__linked_libs): Update.

(svn_sysinfo__loaded_libs): Update.

(win32_shared_libs): Update, make return value an APR array.

(release_name_from_uname) Define only unless SVN_HAVE_MACOS_PLIST

to avoid compiler warnings about unused static function on Mac OS X.

* subversion/libsvn_subr/opt.h: Include apr_tables.h.

(svn_opt__version_info_t): New struct. Contains all the information that

was formerly returned in a string by svn_opt__get_version_info.

(svn_opt__get_version_info): Change signature; returns a svn_opt__version_info_t.

(svn_opt__print_version_info): Reinstate, but using the outpot from

svn_opt__get_version_info.

* subversion/libsvn_subr/opt.c (svn_opt__get_version_info): Reimplement.

(svn_opt__print_version_info): Reinstate.

(svn_opt_print_help4): Use svn_opt__print_version_info again.

* subversion/libsvn_subr/deprecated.c

(svn_opt_print_help): Use svn_opt__print_version_info again.

  1. … 4 more files in changeset.
First step towards making client version information usable by other than

the svn command-line client.

* subversion/libsvn_subr/opt.h (svn_opt__get_version_info): Renamed from

svn_opt__print_version_info and prototype changed to return a string.

Updated docstring.

* subversion/libsvn_subr/opt.c (svn_opt__get_version_info): Renamed from

svn_opt__print_version_info; constructs a string with the version info

instead of printing directly to the console.

(svn_opt_print_help4): Update to use svn_opt__get_version_info.

* subversion/libsvn_subr/deprecated.c (svn_opt_print_help): Update to use

svn_opt__get_version_info.

  1. … 2 more files in changeset.
Expand "svn --version" output with information about the running system

when --verbose is also given on the command line. Currently available:

- Minimal running system info on systems with uname().

- System info and commercial release name on Windows.

* build.conf (libsvn_subr): Require kernel32.lib on Windows.

* configure.ac: Check for uname() in sys/utsname.h.

* subversion/include/svn_opt.h (svn_opt_print_help4): New, with verbose option.

(svn_opt_print_help3): Deprecate.

* subversion/libsvn_subr/sysinfo.c, subversion/libsvn_subr/sysinfo.h: New.

* subversion/libsvn_subr/opt.h (svn_opt__print_version_info): Add "verbose".

* subversion/libsvn_subr/opt.c: Include sysinfo.h.

(svn_opt__print_version_info): In verbose mode, print svn_sysinfo__*.

(svn_opt_print_help4): Implement.

(svn_opt_print_help3): Remove.

* subversion/libsvn_subr/deprecated.c

(svn_opt_print_help3, svn_opt_print_help3): Reimplenment in terms of

svn_opt_print_help4.

(svn_opt_print_help): Update call to svn_opt__print_version_info.

* subversion/svn/main.c: Add --verbose option to "svn --version".

* subversion/svnlook/main.c: Add --verbose option to "svn --version".

Use svn_opt_print_help4 instead of svn_opt_print_help3.

* subversion/svn/help-cmd.c, subversion/svnadmin/main.c,

subversion/svndumpfilter/main.c, subversion/svnmucc/svnmucc.c,

subversion/svnrdump/svnrdump.c, subversion/svnserve/main.c,

subversion/svnsync/main.c, subversion/svnversion/main.c,

tools/dev/svnraisetreeconflict/main.c,

tools/server-side/svn-rep-sharing-stats.c:

Use svn_opt_print_help4 instead of svn_opt_print_help3.

  1. … 19 more files in changeset.
Add an 'svn_rangelist_t' typedef for use with the existing 'svn_rangelist_*'

APIs, instead of using 'apr_array_header_t' directly.

The immediate reason is to improve the debugging experience: I can make

GDB display 'svn_rangelist_t' values in a simple human-readable form, whereas

the best it can do with 'apr_array_header_t', not knowing the type of the

elements, is print something like 'array of 2 items'.

Beyond that, it makes sense from a coding abstraction point of view, filling

a gap in this hierarchy:

svn_mergeinfo_catalog_t is a collection of

svn_mergeinfo_t is a collection of

svn_rangelist_t is a collection of

svn_merge_range_t

This type has public visibility. Because it is just a typedef, the C API

will be backward-compatible and the ABI won't change. Therefore all uses,

even in deprecated functions, are being changed.

Using such a typedef doesn't provide any additional static type-checking.

Unlike svn_mergeinfo_t and svn_mergeinfo_catalog_t, svn_rangelist_t is not a

pointer type.

* subversion/include/svn_mergeinfo.h

(svn_rangelist_t): New typedef.

(...everywhere...): Use it.

* subversion/include/private/svn_mergeinfo_private.h

(...everywhere...): Use it.

* subversion/include/svn_client.h

(svn_client_mergeinfo_get_merged): Update doc string to refer to this.

* subversion/bindings/javahl/native/CreateJ.cpp,

subversion/bindings/javahl/native/CreateJ.h,

subversion/bindings/javahl/native/SVNClient.cpp,

subversion/bindings/swig/core.i,

subversion/bindings/swig/include/svn_containers.swg,

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

(...everywhere...): Update the bindings.

subversion/libsvn_client/diff.c,

subversion/libsvn_client/merge.c,

subversion/libsvn_client/mergeinfo.c,

subversion/libsvn_client/mergeinfo.h,

subversion/libsvn_client/ra.c,

subversion/libsvn_fs_util/fs-util.c,

subversion/libsvn_repos/load-fs-vtable.c,

subversion/libsvn_repos/log.c,

subversion/libsvn_repos/rev_hunt.c,

subversion/libsvn_subr/deprecated.c,

subversion/libsvn_subr/mergeinfo.c,

subversion/svndumpfilter/main.c,

subversion/svnrdump/load_editor.c,

subversion/tests/libsvn_subr/mergeinfo-test.c

(...everywhere...): Use it.

  1. … 22 more files in changeset.
Prevent path-handling related deprecation warnings. Since they happen

in code of functons that are deprecated themselves, we need a workaround

here: move the actual code to a static *_internal function and let

the public deprecated API as well as its users call that internal

(non-deprecated) function.

* subversion/libsvn_subr/deprecated.c

(svn_path_is_canonical): move from here to the next file

* subversion/libsvn_subr/path.c

(svn_path_is_canonical_internal,

svn_path_is_canonical): make the function body available internally

without deprecation warning

(svn_path_join_internal,

svn_path_join): do a similar split; call svn_path_is_canonical_internal

to prevent deprecation warnings

(svn_path_join_many,

svn_path_dirname,

svn_path_basename,

svn_path_decompose): call *_internal functions

  1. … 1 more file in changeset.
Follow-up to r1239841: Fix many crashes and test failures (ooops!)

* subversion/libsvn_subr/deprecated.c

(svn_io_start_cmd2): Properly pass arguments on to svn_io_start_cmd3().

Allow callers of svn_io_start_cmd() to specify custom environments the

child process should inherit.

This commit enhances the svn_io_start_cmd() API, but nothing uses the

new functionality yet.

* subversion/include/svn_io.h

(svn_io_start_cmd3): Declare.

(svn_io_start_cmd2): Deprecate.

* subversion/libsvn_subr/deprecated.c

(svn_io_start_cmd2): Re-implement as wrapper around svn_io_start_cmd3().

* subversion/libsvn_subr/io.c

(svn_io_start_cmd3): New. Like svn_io_start_cmd2(), but with a new

ENV parameter that can be used to inherit a custom environment to

the child process.

  1. … 2 more files in changeset.
For issue #2487, "mod_dav_svn and locales fail to play nicely together",

add a new configuration option which allows Subversion libraries called

from mod_dav_svn to process UTF-8 strings, instead of just ASCII strings.

Because httpd is not locale-aware, we cannot assume that a native character

set other than ASCII is present in the environment that mod_dav_svn runs in.

UTF-8 is backward compatible to ASCII, and all paths within Subversion

repositories are already encoded in UTF-8. Thus, we can safely allow UTF-8

without running into character set conversion issues in code called from

mod_dav_svn.

Basic testing shows that httpd is prepared to tolerate non-ASCII characters,

even though it doesn't seem to interpret them. E.g. it logs such characters

as hex codes preceded by a backslash.

The new configuration option is called SVNUseUTF8 and can be set to

"On" or "Off" (the default is "Off"). It is a global option that takes

effect for all repository locations defined in the configuration file.

When the option is "On", files that contain UTF-8 characters in their

names can be processed by the pre-lock hook, hooks are able to write

UTF-8 characters to stdout and stderr, and filesystem paths to Subversion

repositories may contain UTF-8 characters.

* subversion/mod_dav_svn/mod_dav_svn.c

(server_conf_t): Add use_utf8 boolean.

(init): Initialise the native character set of Subversion's UTF-8

conversion routines to either ASCII (default) or UTF-8.

(SVNUseUTF8_cmd): New option command processor.

(cmds): Add new "SVNUseUTF8" option.

* subversion/include/svn_utf.h

(svn_utf_initialize2): Declare. Includes the ablity to force the native

character set to UTF-8, regardless of locale.

(svn_utf_initialize): Deprecate.

* subversion/libsvn_subr/deprecated.c

(svn_utf_initialize): Re-implement as wrapper around svn_utf_initialize2().

* subversion/libsvn_subr/cmdline.c

(svn_cmdline_init): Update funtion call to svn_utf_initialize2(), keeping

the native character set based on the current locale.

* subversion/libsvn_subr/utf.c

(svn_utf_initialize2): New.

(assume_native_charset_is_utf8): New global boolean variable. Defaults

to FALSE, and may be set to TRUE by svn_utf_initialize2() (which, like

its predecessor, is documented to not be thread-safe).

(get_ntou_xlate_handle_node, get_uton_xlate_handle_node): If the native

character set has been forced to UTF-8, use SVN_APR_UTF8_CHARSET instead

of SVN_APR_LOCALE_CHARSET.

  1. … 4 more files in changeset.
Rev svn_mergeinfo_diff() to allow it to take a scratch_pool.

* subversion/include/svn_mergeinfo.h

(svn_mergeinfo_diff2): New.

(svn_mergeinfo_diff): Deprecated.

* subversion/libsvn_subr/deprecated.c

(svn_mergeinfo_diff): New wrapper function.

* subversion/libsvn_subr/mergeinfo.c

(svn_mergeinfo_diff2): New, now with better pool management!

(svn_mergeinfo__equals): Use the updated API.

  1. … 2 more files in changeset.
Move some deprecated API implementations to deprecated.c.

* subversion/libsvn_subr/mergeinfo.c

(svn_mergeinfo_intersect,

svn_mergeinfo_remove): Move these from here to...

* subversion/libsvn_subr/deprecated.c

(svn_mergeinfo_intersect,

svn_mergeinfo_remove): here...

(svn_rangelist_merge,

svn_mergeinfo_merge): Move these up to the 'From mergeinfo.c' group.

  1. … 1 more file in changeset.
Rev svn_mergeinfo_merge API to use the two-pool paradigm.

* subversion/include/svn_mergeinfo.h

(svn_mergeinfo_merge2): New.

(svn_mergeinfo_merge): Deprecated.

* subversion/libsvn_subr/mergeinfo.c

(svn_mergeinfo_merge2): New.

(svn_mergeinfo_merge): Move to deprecated.c.

(svn_mergeinfo_catalog_merge): Use the new API.

* subversion/libsvn_subr/deprecated.c

(svn_mergeinfo_merge): Move svn_mergeinfo_merge implementation to here.

* subversion/libsvn_client/merge.c

(update_wc_mergeinfo,

log_find_operative_revs):

* subversion/libsvn_repos/log.c

(get_combined_mergeinfo_changes,

store_search,

get_paths_history_as_mergeinfo):

Update all callers of svn_mergeinfo_merge, with access to a scratch pool,

to the new API.

  1. … 4 more files in changeset.
Add svn_rangelist_merge2() which modifies the rangelist in-place to produce

its result, instead of allocating a new rangelist, and also uses the dual-pool

paradigm. The previous svn_rangelist_merge() implementation was awkward

to call from within a loop without potentially using a lot of memory (see

r1148566 for an example).

Suggested by: philip

* subversion/include/svn_mergeinfo.h

(svn_rangelist_merge2): Declare.

(svn_rangelist_merge): Deprecate.

* subversion/libsvn_subr/deprecated.c

(svn_rangelist_merge): Implement as a wrapper around svn_rangelist_merge2().

* subversion/libsvn_subr/mergeinfo.c

(svn_rangelist_merge): Rename to ...

(svn_rangelist_merge2): ... this. Change the RANGELIST parameter to

an apr_array_header_t* (rather than apr_array_header_t**). Replace

the POOL parameter with RESULT_POOL and SCRATCH_POOL parameters.

Produce the merged rangelist in place, allocating any elements newly

added to the array in RESULT_POOL.

  1. … 2 more files in changeset.
Followup to r1140505. Fix indentation.

* [everywhere]: Fix indentation fallout from the

svn_error_return() -> svn_error_trace() rename.

Patch by: Noorul Islam K M <noorul{_AT_}collab.net>

  1. … 37 more files in changeset.
Rename the 'svn_error_return' macro to 'svn_error_trace'.

See email thread "[RFC] Rename 'svn_error_return' to 'svn_error_trace'?" on

2011-06-23, <http://svn.haxx.se/dev/archive-2011-06/0708.shtml>.

* subversion/include/svn_error.h

(svn_error_return): Rename to svn_error_trace.

(SVN_ERR, svn_error_purge_tracing): Track the rename.

* [everywhere]: Track the rename.

  1. … 120 more files in changeset.
Make it possible to add encoding information to XML headers.

* subversion/include/svn_xml.h

(svn_xml_make_header2): Declare.

(svn_xml_make_header): Deprecate.

* subversion/libsvn_subr/deprecated.c

(svn_xml_make_header): Moved to here from libsvn_subr/xml.c.

* subversion/libsvn_subr/xml.c

(svn_xml_make_header2): New. Like svn_xml_make_header() but also accepts

an ENCODING parameter which, if not NULL, specifies the name of the

encoding of the document and causes an 'encoding' attribute in the header.

  1. … 2 more files in changeset.
Remove svn_io_file_create2() which is unused.

* subversion/include/svn_io.h

(svn_io_file_create2): Remove.

(svn_io_file_create): Stop refering to it.

* subversion/libsvn_subr/deprecated.c

(svn_io_file_create): Remove here.

* subversion/libsvn_subr/io.c

(svn_io_file_create): Rename from svn_io_file_create2(), adjusting.

  1. … 2 more files in changeset.
Reinstate the one function that is needed for the 1.6 commmand

line client to use the 1.7 libraries. This is only active when

configured with --disable-full-version-match for testing.

Remove the code that allowed 1.6 libsvn_client to use the other

1.7 libraries as it has suffered bit-rot and no longer works.

Several other functions would have to be provided for this to

work.

* subversion/libsvn_subr/deprecated.c

(svn_opt__eat_peg_revisions): Add.

* subversion/libsvn_wc/deprecated.c

(svn_wc__entry_versioned_internal): Remove.

  1. … 1 more file in changeset.
Allocate a struct on the stack.

Suggested by: gstein

* subversion/libsvn_subr/deprecated.c

(svn_io_file_create): Shallow copy the C string to a stack svn_string_t.

Revv the svn_io_file_create() API to take non-NUL-terminated strings.

* subversion/include/svn_io.h

(svn_io_file_create2): New.

(svn_io_file_create): Deprecate.

* subversion/libsvn_subr/io.c

(svn_io_file_create2): Renamed from svn_io_file_create().

* subversion/libsvn_subr/deprecated.c

(svn_io_file_create): New wrapper.

  1. … 2 more files in changeset.
Remove the unused pool argument from svn_relpath_is_canonical(). I can't

think of a reason why we are ever going to use that later with our

current definition of what is and isn't a valid relpath.

No functional changes.

* subversion/include/svn_dirent_uri.h

(svn_relpath_is_canonical): Remove argument.

* subversion/libsvn_subr/deprecated.c

* subversion/libsvn_subr/dirent_uri.c

* subversion/libsvn_subr/mergeinfo.c

* subversion/libsvn_wc/old-and-busted.c

* subversion/libsvn_wc/relocate.c

* subversion/libsvn_wc/util.c

* subversion/libsvn_wc/wc_db.c

* subversion/mod_dav_svn/util.c

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

(*): Update callers.

  1. … 9 more files in changeset.
Merge all changes (r1068684, r1072297) from the

integrate-io-improvements branch.

These patches reduce the calling overhead in various I/O-related functions.

  1. … 8 more files in changeset.
Fix Issue #3781 (Case sensitive authz).

* subversion/tests/cmdline/authz_tests.py

(case_sensitive_authz): Removed XFail decorator.

* subversion/include/svn_config.h

(svn_config_create) : Documented new parameter.

(svn_config_read) : Deprecated.

(svn_config_read2) : New function prototype, updated documentation.

* subversion/libsvn_subr/config_impl.h

(svn_config_t): Added a new boolean called section_names_case_sensitive.

* subversion/libsvn_subr/deprecated.c

(svn_config_read): New function that calls svn_config_read2

with section_names_case_sensitive as FALSE.

* subversion/libsvn_subr/config.c

(svn_config_create): Added a parameter section_names_case_sensitive

which is used to initialize the config.

(find_option,

svn_config_set) : Added logic to make section names case sensitive.

(svn_config_read) : Deprecated.

(svn_config_read2) : New function that deprecates svn_config_read.

Accepts a boolean section_names_case_sensitive,

and populates the section names case sensitively

if TRUE.

* subversion/libsvn_repos/authz.c

(svn_repos_authz_read) : Fixed the caller with

section_names_case_sensitive as TRUE.

* subversion/tests/cmdline/atomic-ra-revprop-change.c

(construct_config) : Fixed call of svn_config_create.

Patch by: Arwin Arni <arwin{_AT_}collab.net>

  1. … 6 more files in changeset.
Extend svn_subst_translate_string2() with another parameter, REPAIR, to allow

the caller to customize whether line ending repairs are performed.

As discussed at:

http://thread.gmane.org/gmane.comp.version-control.subversion.devel/125050

* subversion/include/svn_subst.h

(svn_subst_translate_string2): Add a REPAIR parameter. Update the

documentation of the function.

* subversion/libsvn_subr/subst.c

(svn_subst_translate_string2): Add a REPAIR parameter. Pass the value through

to translate_cstring().

* subversion/libsvn_subr/deprecated.c

(svn_subst_translate_string): Call svn_subst_translate_string2() with REPAIR

set to FALSE.

* subversion/svn/util.c

(svn_cl__edit_string_externally, svn_cl__get_log_message): Call

svn_subst_translate_string2() with REPAIR set to FALSE.

* subversion/svn/propset-cmd.c

(svn_cl__propset): Call svn_subst_translate_string2() with REPAIR set to

FALSE.

* subversion/svn/lock-cmd.c

(get_comment): Call svn_subst_translate_string2() with REPAIR set to FALSE.

* subversion/svnadmin/main.c

(set_revprop): Call svn_subst_translate_string2() with REPAIR set to FALSE.

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

(test_svn_subst_translate_string2): Call svn_subst_translate_string2() with

REPAIR set to FALSE. Also test that inconsistent line endings result in

SVN_ERR_IO_INCONSISTENT_EOL when REPAIR is FALSE.

(test_repairing_svn_subst_translate_string2): New test case that tests a

repairing translation.

(test_funcs): Add test_repairing_svn_subst_translate_string2.

Patch by: Danny Trebbien <dtrebbien{_AT_}gmail.com>

  1. … 7 more files in changeset.
Add a public API function, svn_subst_translate_string2(), an extension of

svn_subst_translate_string(), that has two additional output parameters for

determining whether re-encoding and/or line ending translation were performed.

As discussed at:

<http://thread.gmane.org/gmane.comp.version-control.subversion.devel/122550>

<http://thread.gmane.org/gmane.comp.version-control.subversion.devel/123020>

The essential changes are to the translate_newline() function, which now takes

an svn_boolean_t pointer, the value at which is set to TRUE if the pointer is

non-NULL and a different newline is written out. Most other changes are to pass

the svn_boolean_t pointer through to translate_newline().

* build.conf

Configure subversion/tests/libsvn_subr/subst_translate-test

* subversion/include/svn_subst.h

(svn_subst_translate_string2): New function.

(svn_subst_translate_string): Deprecate in favor of

svn_subst_translate_string2().

* subversion/libsvn_subr/subst.c

(STRING_IS_EOL): New macro that tests whether a string is an end-of-line

string ("\n", "\r", "\r\n").

(DIFFERENT_EOL_STRINGS): New macro that tests whether two end-of-line strings

are different.

(translate_newline): Add the TRANSLATED_EOL parameter. If the function

writes out a different newline, then it sets TRANSLATED_EOL to TRUE.

(translation_baton): Add the TRANSLATED_EOL field.

(create_translation_baton): Add a new parameter TRANSLATED_EOL that is

passed to the resulting translation_baton.

(translate_chunk): When calling translate_newline(), pass TRANSLATED_EOL from

the translation_baton.

(stream_translated): New static function. Its implementation is the old

implementation of svn_subst_stream_translated(), but accepting another

parameter, TRANSLATED_EOL, that is passed to the in/out translation batons

that it creates.

(svn_subst_stream_translated): Now a wrapper for stream_translated().

(translate_cstring): New static function. Its implementation is the old

implementation of svn_subst_translate_cstring2(), but modified to accept

another parameter, TRANSLATED_EOL, that is passed to stream_translated().

(svn_subst_translate_cstring2): Now a wrapper for translate_cstring().

(svn_subst_translate_string): Move to deprecated.c.

(svn_subst_translate_string2): New function. It takes three additional

parameters: TRANSLATED_TO_UTF8, TRANSLATED_LINE_ENDINGS, and another pool

parameter. The task of recording whether it translates a line ending is

delegated to translate_cstring().

* subversion/libsvn_subr/deprecated.c

(svn_subst_translate_string): Now a wrapper for svn_subst_translate_string2().

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

New test suite for the svn_subst_translate_* functions.

Patch by: Danny Trebbien <dtrebbien{_AT_}gmail.com>

  1. … 4 more files in changeset.
Rev the svn_io_start_cmd() API, adding pipe support.

* subversion/libsvn_subr/io.c

(svn_io_start_cmd2): New revision of svn_io_start_cmd(), adding

booleans to indicate where pipes should be used instead of file

handles.

(svn_io_start_cmd): Moved to deprecated.c.

* subversion/libsvn_subr/deprecated.c

(svn_io_start_cmd): Moved here from io.c, and reduced to a mere

wrapper around svn_io_start_cmd2().

* subversion/include/svn_io.h

(svn_io_start_cmd2): New revision of svn_io_start_cmd2().

(svn_io_start_cmd): Deprecate this function.

Patch by: Martin Furter <mf@rola.ch>

(Tweaked by cmpilato.)

  1. … 2 more files in changeset.
Tighten variable scope in many locations.

Found by: Philipp Kloke <philipp.kloke@web.de>

* subversion/libsvn_diff/diff_file.c,

subversion/libsvn_subr/error.c,

subversion/libsvn_subr/opt.c,

subversion/libsvn_subr/dirent_uri.c,

subversion/libsvn_subr/deprecated.c,

subversion/libsvn_subr/io.c,

subversion/libsvn_ra_local/ra_plugin.c,

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

subversion/mod_dav_svn/reports/update.c,

subversion/tests/svn_test_main.c,

subversion/svndumpfilter/main.c,

subversion/libsvn_ra_svn/cyrus_auth.c,

subversion/libsvn_ra_svn/marshal.c,

subversion/svn/propdel-cmd.c,

subversion/svn/propget-cmd.c,

subversion/svn/log-cmd.c,

subversion/svn/propset-cmd.c,

subversion/svn/switch-cmd.c,

subversion/svn/proplist-cmd.c,

subversion/svn/propedit-cmd.c,

subversion/libsvn_fs_base/tree.c,

subversion/libsvn_fs_base/revs-txns.c,

subversion/libsvn_wc/deprecated.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/old-and-busted.c,

subversion/libsvn_wc/wc_db.c,

subversion/svnlook/main.c,

subversion/libsvn_client/export.c,

subversion/libsvn_client/patch.c,

subversion/libsvn_client/merge.c,

subversion/libsvn_client/mergeinfo.c,

subversion/libsvn_ra_neon/mergeinfo.c,

subversion/libsvn_ra_serf/mergeinfo.c,

subversion/libsvn_repos/reporter.c,

subversion/libsvn_repos/fs-wrap.c,

subversion/libsvn_repos/delta.c,

subversion/svnserve/serve.c:

Tighten variable scope.

  1. … 36 more files in changeset.
r950445 changed the semantics of svn_io_dir_walk() to also pass

APR_LNK filetypes to the provided callback function. After some list

discussion, I think this violates our compatability promises. So I'm

effectively reverting svn_io_dir_walk() to its original behavior, and

revving the API to include the new behavior.

### NOTE: Had to fix the recursion in svn_io_dir_walk2() in r967198. ###

* subversion/include/svn_io.h

(svn_io_dir_walk2): New.

(svn_io_dir_walk): Deprecate this.

* subversion/libsvn_subr/io.c

(svn_io_dir_walk2): Renamed from svn_io_dir_walk().

* subversion/libsvn_subr/deprecated.c

(walk_func_filter_baton_t, walk_func_filter_func): New callback

function and baton.

(svn_io_dir_walk): Recreate here as just a wrapper around

svn_io_dir_walk2() which uses a filtering callback function to

ensure the promised semantics.

* subversion/libsvn_repos/repos.c

(svn_repos_hotcopy): Use svn_io_dir_walk2() instead of svn_io_dir_walk().

  1. … 3 more files in changeset.
To allow improving the svn status performance, allow retrieving the size

and mtime of files directly when retrieving the dirents inside a directory.

Performing a stat of every file individually will never be as fast as per

directory. Especially if we open the directory for reading anyway.

* subversion/include/svn_io.h

(svn_io_dirent2_t): New struct.

(svn_io_dirent2_create): New function.

(svn_io_dirent2_dup): New function.

(svn_io_dirent_t): Update documentation.

(svn_io_get_dirents3): New function.

(svn_io_get_dirents2): Deprecate function.

(svn_io_stat_dirent): New function. (Helper for wc status walker)

* subversion/libsvn_subr/deprecated.c

(svn_io_get_dirents2): New function.

(svn_io_get_dirents): Move function here from io.c

* subversion/libsvn_subr/io.c

(svn_io_remove_dir2): Use svn_io_get_dirents3 and avoid casts.

(svn_io_dirent2_create): New function.

(svn_io_dirent2_dup): New function.

(svn_io_get_dirents2): Rename to ...

(svn_io_get_dirents3): ... this, update struct for hash. Retrieve

additional values only if required.

  1. … 2 more files in changeset.
Minor optimization in svn_io_file_lock2(). Move deprecated function.

* subversion/libsvn_subr/deprecated.c

(svn_io_file_lock): Move file from io.c to here.

* subversion/libsvn_subr/io.c

(svn_io__file_clear_and_close): Rename to ...

(file_clear_locks): ... this as this function is not shared between files

and apr will take care of closing the file anyway. And comment on

Windows and OS/2, because closing a file takes care of clearing the

locks on these systems.

(svn_io_file_lock): Move to deprecated.c.

(svn_io_file_lock2): Don't register a cleanup handler on Windows and

OS/2, as the locks will be freed by just closing the handle from the

file cleanup.

  1. … 1 more file in changeset.