Checkout Tools
  • last updated 7 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
In FSFS, complete the chunked read support for changed paths lists.

This patch does two things. Instead of full changes lists, it caches only

blocks of up to 100 entires - possibly more than one per revision. Secondly,

it needs to be able to seek to specific blocks of changes if they should not

be found in the cache. So, we need to remember their offsets within the

on-disk representation.

This ports r1744987 and r1744991 from FSX to FSFS. Properties and

directories are now the only data structures left with unbound memory

usage.

* subversion/libsvn_fs_x/fs.h

(SVN_FS_FS__CHANGES_BLOCK_SIZE): New define.

(svn_fs_fs__data_t.changes_cache): Update docstring.

(svn_fs_fs__changes_context): Add the NEXT_OFFSET element, so we know where

to read from disk when we need to fall back

to that.

* subversion/libsvn_fs_fs/temp_serializer.h

(svn_fs_fs__changes_list_t): New data structure that decorated the plain

APR array of changes with per-block info such

as relative position on disk etc.

(svn_fs_fs__serialize_changes,

svn_fs_fs__deserialize_changes): Update docstrings as we expect the changes

list to be of the above type now.

* subversion/libsvn_fs_x/temp_serializer.c

(changes_data_t): Superseeded by svn_fs_fs__changes_list_t.

(svn_fs_fs__serialize_changes,

svn_fs_fs__deserialize_changes): Update. The new data type is similar

to the one used before internally.

* subversion/libsvn_fs_fs/caching.c

(svn_fs_fs__initialize_caches): Changed paths lists are now keyed by

rev,block pairs.

* subversion/libsvn_fs_fs/cached_data.c

(svn_fs_fs__get_changes): Fetch only the next block of list entries from

cache, or read the next block from disk and

cache it, respectively. Be sure to provide all

relative location info we may need to restart

the parser for this or the next block.

(block_read_changes): Provide the additional information now required per

entries block. Cache only lists that fit into a

single entries block. Update docstring.

  1. … 4 more files in changeset.
Follow-up to r1726004:

Never toggle the meaning of a flag last minute ...

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__extract_dir_entry): Fix OOD condition.

* subversion/libsvn_fs_x/temp_serializer.c

(svn_fs_x__extract_dir_entry): Same.

  1. … 1 more file in changeset.
Fix the OOD check for cached FSFS in-txn directories when looking for a

specific entry.

The problem is that even outdated directory data is reported as "found"

by the lookup code. The callback that will check for out-of-dateness

needs to report back that the data found could not be used.

This was found during testing the parallel-put freature and is part of

the new multi-connection editing support we added in trunk for 1.10.

* subversion/libsvn_fs_fs/temp_serializer.h

(extract_dir_entry_baton_t): Add an OOD indicator field to be filled

by the callback.

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__extract_dir_entry): Set that new field.

* subversion/libsvn_fs_fs/cached_data.c

(svn_fs_fs__rep_contents_dir_entry): Treat OOD data the same as uncached.

  1. … 2 more files in changeset.
Reduce memory footprint of cached directories in FSFS revisions.

For efficient modification within a transaction, we over-provide cache

memory. So, we can add entries in constant time instead of running a

complete de-serialization / modification / serialization cycle. This

space overhead is not useful for immutable, committed data. Therefore,

make it txn-only. The serialization format etc. does not change.

* subversion/libsvn_fs_fs/temp_serializer.h

(svn_fs_fs__serialize_txndir_entries): Declare specific serializer

for in-txn directories.

* subversion/libsvn_fs_fs/temp_serializer.c

(return_serialized_dir_context): Make over-provisioning optional.

(svn_fs_fs__serialize_dir_entries): Don't over-provide anymore.

(svn_fs_fs__serialize_txndir_entries): Implement using over-provision.

(svn_fs_fs__replace_dir_entry): Always over-provide b/c this is in-txn

data.

* subversion/libsvn_fs_fs/caching.c

(svn_fs_fs__initialize_txn_caches): Use the specific dir serializers.

  1. … 2 more files in changeset.
In FSFS, add the revprop cache object and its invalidation logic.

Do not write to the cache, yet.

Note that in an attempt to minimize the CPU overhead when reading

whole revprop pack files, we don't fully parse them before caching

them. Instead, the cache expects the plain serialized hash in set()

and only parses it during get(). The overhead for the getter is very

small while the setter gets significantly faster.

Also note that svn_fs_fs__get_revision_proplist will be the only

place where we may ever read cached revprops. Therefore, functions

like svn_fs_fs__set_revision_proplist will never write (partially)

outdated revprops.

* subversion/libsvn_fs_fs/fs.h

(fs_fs_data_t): Add the revprop cache and its key prefix.

* subversion/libsvn_fs_fs/caching.c

(svn_fs_fs__initialize_caches): Construct the new cache as well.

* subversion/libsvn_fs_fs/fs.c

(fs_refresh_revprops): This is now "invalidate revprop cache".

(initialize_fs_struct): Initialize the new struct element.

* subversion/libsvn_fs_fs/temp_serializer.h

(svn_fs_fs__serialize_revprops,

svn_fs_fs__deserialize_revprops): Declare (de-)serialization functions

for the new cache.

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__serialize_revprops,

svn_fs_fs__deserialize_revprops): Implement them asymmetrically.

* subversion/libsvn_fs_fs/revprops.h

(svn_fs_fs__reset_revprop_cache): Declare our new cache invalidation

function.

* subversion/libsvn_fs_fs/revprops.c

(svn_fs_fs__reset_revprop_cache): Implement.

(prepare_revprop_cache): New utility function.

(svn_fs_fs__get_revision_proplist): Actually evaluate the REFRESH option/

sync barrier now and return cached

data if available - which currently

is never the case.

(svn_fs_fs__set_revision_proplist): After we changed revprops, we *know*

our cache is invalid. IOW, write

implies a barrier.

* subversion/libsvn_fs_fs/fs_fs.c

(change_rev_prop_body): Document why we need the "refresh" option here.

  1. … 7 more files in changeset.
Eliminate the need to re-parse a directory that just got committed in FSFS.

After writing the new directory representation, add it to the revision data

cache as well. However, mark it as "stale" until the commit actually went

through (new HEAD has been set). The "staleness" checks themselves have

already been added in 1.9.

* subversion/libsvn_fs_fs/temp_serializer.h

(svn_fs_fs__reset_txn_filesize): Declare a new cache data modifier that

resets the "stale" indicator.

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__reset_txn_filesize): Implement.

* subversion/libsvn_fs_fs/transaction.c

(write_final_rev): Populate the cache with the future in-revision dir

contents and fill the list of cache entries.

(promote_cached_directories): Post-commit processing making the new dir

cache entries actually available.

(commit_body): Provide the directory IDs container and invoke the new

post-commit processing code for it.

  1. … 2 more files in changeset.
* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__serialize_properties): Use the correct pointer type in a

sizeof() expression, for theoretical correctness; makes no difference in

practice.

In FSFS and FSX temp serialization code, avoid taking the size of types

when we have access to the actual objects. This reduces redundancy.

* subversion/libsvn_fs_fs/id.c

(svn_fs_fs__id_serialize): Take the item size from the variable rather

than the key.

* subversion/libsvn_fs_fs/temp_serializer.c

(serialize_svn_string,

serialize_representation,

serialize_dir_entry,

serialize_dir,

serialize_txdelta_ops,

serialize_txdeltawindow,

svn_fs_fs__serialize_rep_header): Same.

* subversion/libsvn_fs_x/temp_serializer.c

(serialize_dir_entry,

svn_fs_x__serialize_changes): Same.

  1. … 2 more files in changeset.
* subversion/libsvn_fs_fs/temp_serializer.c

* subversion/libsvn_subr/mergeinfo.c

* subversion/libsvn_subr/x509info.c

* subversion/libsvn_subr/x509parse.c

(svn_fs_fs__serialize_manifest, svn_fs_fs__extract_dir_entry,

svn_x509_name_attr_dup, x509_name_to_certinfo): Use apr_pmemdup()

instead of apr_palloc() following memcpy().

  1. … 3 more files in changeset.
Complete work on the fs-test 44 issue in FSFS:

Make the last accessor - single dir entry read - handle / check the in-txn

filesize. No access function should ever return stale dir cache entries nor

try to update them. They may or may not get eventually overwritten with

current data or mey just be dropped.

* subversion/libsvn_fs_fs/temp_serializer.h

(extract_dir_entry_baton_t): Declare new parameter type.

(svn_fs_fs__extract_dir_entry): Update docstring requiring that the caller

now provides a baton of the new type.

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__extract_dir_entry): Update. Cause a NULL / "not found" return

when the cached data is stale as indicated

by the file size.

* subversion/libsvn_fs_fs/cached_data.c

(svn_fs_fs__rep_contents_dir_entry): Pass the expected filesize alongside

the wanted direntry name to the getter.

  1. … 2 more files in changeset.
Continue work on the fs-test 44 issue in FSFS:

When updating the in-txn directory representation on disk, i.e. appending

to the file, update the filesize in the respective cache entry as well,

if such an entry exists.

* subversion/libsvn_fs_fs/temp_serializer.h

(replace_baton_t): Add field to pass the new filesize to the cache

updater function.

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__replace_dir_entry): Update additional data field.

* subversion/libsvn_fs_fs/transaction.c

(svn_fs_fs__set_entry): Provide the new file size to the updater.

  1. … 2 more files in changeset.
Continue work on the fs-test 44 issue in FSFS:

Begin work on the cache updater code. Remove stale cache entries from cache,

i.e. those who got changed on disk by 3rd parties, from cache instead of

"updating" them.

At this point, only the updater code needs to be completed (write new file

size to cache) and the partial reader for single entries must be updated

to check for the file size by further patches.

* subversion/libsvn_fs_fs/temp_serializer.h

(svn_fs_fs__extract_dir_filesize): Declare accessor function that reads

the txn-filesize of a cached directory.

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__extract_dir_filesize): Implement.

* subversion/libsvn_fs_fs/transaction.c

(svn_fs_fs__set_entry): Detect stale cache entries and remove them.

  1. … 2 more files in changeset.
Begin working on the fs-test 44 issue with FSFS:

Add an in-txn file size info to cached directories. For that,

we simply wrap the entries array into a new struct at the cache

interface.

This patch only introduces the struct and updates the cache

access functions. The filesize value is neither being set nor

checked at this point.

* subversion/libsvn_fs_fs/fs.h

(svn_fs_fs__dir_data_t): New data structure.

* subversion/libsvn_fs_fs/cached_data.c

(get_dir_contents): Return the new struct instead of the plain

entries array.

(svn_fs_fs__rep_contents_dir): Update caller. Use the new struct

at the cache interface.

* subversion/libsvn_fs_fs/temp_serializer.c

(dir_data_t): Add TXN_FILESIZE element such that we can store

all parts of the new svn_fs_fs__dir_data_t.

(serialize_dir,

deserialize_dir): Expect and return the new struct instead of

a plain dir entries array.

(svn_fs_fs__serialize_dir_entries,

slowly_replace_dir_entry): Update caller.

* subversion/libsvn_fs_fs/temp_serializer.h

(svn_fs_fs__serialize_dir_entries,

svn_fs_fs__deserialize_dir_entries): Update type in docstrings.

  1. … 3 more files in changeset.
Resolve several easy to fix compiler warnings.

* subversion/libsvn_fs_fs/lock.c

(add_to_digest): Use unsigned int type to match apr_hash_count() signature.

* subversion/libsvn_fs_fs/low_level.c

(read_header_block): Use apr_size_t for indexes instead of apr_ssize_t and

refactor code to avoid subtraction.

* subversion/libsvn_fs_fs/temp_serializer.c

(serialize_dir): Use int type for index to match apr_array_header->nelts

type.

  1. … 2 more files in changeset.
Following the availability of apr_hash_this_key() etc. in APR v1.5, use

these in Subversion code instead of svn__apr_hash_index_key() etc. Provide

substitutes only when APR is too old to provide them.

* subversion/include/svn_types.h,

subversion/libsvn_subr/iter.c

(svn__apr_hash_index_key,

svn__apr_hash_index_klen,

svn__apr_hash_index_val):

Rename to apr_hash_this_key, apr_hash_this_key_len, apr_hash_this_val.

Declare and define them only if APR is older than 1.5.

Everywhere else: track the renames.

  1. … 102 more files in changeset.
Slightly reduce the memory usage when writing to and reading from

changed path lists caches. Since APR arrays are glorified memory

buffers with their structure being part of the ABI, we can read

and write them directly.

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__serialize_changes): Directly serialize from the

array's data buffer.

(svn_fs_fs__deserialize_changes): Use the copy already handed into

this function as the array's buffer.

Prevent the serialization buffer for changed paths lists from growing

by default. Pre-allocate it properly with enough space for our change_t

instances which became quite obese since the last release or so.

If necessary, the buffer will still auto-grow.

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__serialize_changes): 144 bytes for the struct, 106 for the

path(s) - on average.

Reduce the CPU overhead caused by the FSFS format 7 block read feature.

Instead of parsing txdelta windows every time we encounter them, initially

cache their raw form and parse it only when the window gets accessed for

the first time.

* subversion/libsvn_fs_fs/temp_serializer.h

(svn_fs_fs__raw_cached_window_t): Declare a data type for cached raw /

unparsed txdelta windows.

(svn_fs_fs__serialize_raw_window,

svn_fs_fs__deserialize_raw_window): Declare the corresponding

(de-)serialization functions.

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__serialize_raw_window,

svn_fs_fs__deserialize_raw_window): Implement the new (de-)serialization

functions.

* subversion/include/private/svn_delta_private.h

(svn_txdelta__read_raw_window_len): New private API to extract the minimum

information we need to read a raw window.

* subversion/libsvn_delta/svndiff.c

(read_one_size): Add a parameter to ultimately count the number of header

bytes we read.

(read_window_header): Return the number of parsed header bytes as well.

(svn_txdelta_read_svndiff_window,

svn_txdelta_skip_svndiff_window): Update callers.

(svn_txdelta__read_raw_window_len): Implement as a variation of

svn_txdelta_skip_svndiff_window.

* subversion/libsvn_fs_fs/fs.h

(fs_fs_data_t): Add the new cache instance.

* subversion/libsvn_fs_fs/caching.c

(svn_fs_fs__initialize_caches): Initialize the new cache instance.

* subversion/libsvn_fs_fs/cached_data.c

(rep_state_t): We have yet another delta window cache.

(create_rep_state_body): Initialize that new member.

(parse_raw_window): A new cache getter that converts the cached

raw txdelta window into a parsed one.

(get_cached_window): If we can't find the window in its parsed

form, try to find the raw version in our

cache and parse that.

(read_delta_window): Check that both window caches are available,

even though we should always either have

all or neither of them.

(init_rep_state): Update init code similarly to parse_raw_window.

(get_window_header): Replaced by ...

(get_txdelta_window_end): ... this function, which returns only the

end offset of the respective window.

(get_raw_window_end): New function that does the same for raw windows.

(cache_windows): Rewrite as checking both caches before reading data

and only populating the raw window cache.

(block_read_windows): Make sure we attempt to cache delta windows

only if the we have those caches.

  1. … 6 more files in changeset.
Remove a few explicit casts to (void *) where implicit is sufficient.

* subversion/libsvn_diff/diff_file.c

(svn_diff_file_options_parse): As above.

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__deserialize_properties,

svn_fs_fs__replace_dir_entry,

svn_fs_fs__deserialize_mergeinfo): As above.

* subversion/libsvn_fs_x/temp_serializer.c

(svn_fs_x__deserialize_properties,

svn_fs_x__replace_dir_entry,

svn_fs_x__deserialize_mergeinfo): As above.

* subversion/libsvn_ra_svn/client.c

(find_tunnel_agent): As above.

* subversion/libsvn_subr/sorts.c

(heap_is_less): As above.

* subversion/mod_dav_svn/reports/replay.c

(add_file_or_directory, open_file_or_directory): As above.

  1. … 5 more files in changeset.
Revert r1508225, which moved the include of svn_private_config.h before all

includes of our public headers. Public headers shouldn't depend on private

headers and all changes that required this are long reverted on trunk.

This patch excludes all conflicting cases.

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

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

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

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c

* subversion/libsvn_client/add.c

* subversion/libsvn_client/cat.c

* subversion/libsvn_client/changelist.c

* subversion/libsvn_client/cleanup.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/commit_util.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/copy_foreign.c

* subversion/libsvn_client/ctx.c

* subversion/libsvn_client/delete.c

* subversion/libsvn_client/deprecated.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_client/diff_local.c

* subversion/libsvn_client/diff_summarize.c

* subversion/libsvn_client/export.c

* subversion/libsvn_client/externals.c

* subversion/libsvn_client/import.c

* subversion/libsvn_client/info.c

* subversion/libsvn_client/iprops.c

* subversion/libsvn_client/list.c

* subversion/libsvn_client/locking_commands.c

* subversion/libsvn_client/log.c

* subversion/libsvn_client/merge.c

* subversion/libsvn_client/mergeinfo.c

* subversion/libsvn_client/patch.c

* subversion/libsvn_client/prop_commands.c

* subversion/libsvn_client/ra.c

* subversion/libsvn_client/repos_diff.c

* subversion/libsvn_client/resolved.c

* subversion/libsvn_client/revert.c

* subversion/libsvn_client/switch.c

* subversion/libsvn_client/update.c

* subversion/libsvn_client/util.c

* subversion/libsvn_delta/compat.c

* subversion/libsvn_delta/xdelta.c

* subversion/libsvn_diff/parse-diff.c

* subversion/libsvn_diff/util.c

* subversion/libsvn_fs/access.c

* subversion/libsvn_fs_base/bdb/changes-table.c

* subversion/libsvn_fs_base/bdb/env.c

* subversion/libsvn_fs_base/dag.c

* subversion/libsvn_fs_base/fs.c

* subversion/libsvn_fs_base/lock.c

* subversion/libsvn_fs_base/revs-txns.c

* subversion/libsvn_fs_base/tree.c

* subversion/libsvn_fs_fs/caching.c

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_fs/temp_serializer.c

* subversion/libsvn_fs_fs/tree.c

* subversion/libsvn_ra/compat.c

* subversion/libsvn_ra/deprecated.c

* subversion/libsvn_ra/ra_loader.c

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_ra_serf/blame.c

* subversion/libsvn_ra_serf/blncache.c

* subversion/libsvn_ra_serf/commit.c

* subversion/libsvn_ra_serf/getlocations.c

* subversion/libsvn_ra_serf/getlocationsegments.c

* subversion/libsvn_ra_serf/getlocks.c

* subversion/libsvn_ra_serf/inherited_props.c

* subversion/libsvn_ra_serf/log.c

* subversion/libsvn_ra_serf/merge.c

* subversion/libsvn_ra_serf/mergeinfo.c

* subversion/libsvn_ra_serf/options.c

* subversion/libsvn_ra_serf/property.c

* subversion/libsvn_ra_serf/replay.c

* subversion/libsvn_ra_serf/serf.c

* subversion/libsvn_ra_serf/update.c

* subversion/libsvn_ra_serf/util.c

* subversion/libsvn_ra_serf/xml.c

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/editorp.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/libsvn_repos/authz.c

* subversion/libsvn_repos/commit.c

* subversion/libsvn_repos/delta.c

* subversion/libsvn_repos/deprecated.c

* subversion/libsvn_repos/fs-wrap.c

* subversion/libsvn_repos/hooks.c

* subversion/libsvn_repos/log.c

* subversion/libsvn_repos/replay.c

* subversion/libsvn_repos/reporter.c

* subversion/libsvn_repos/repos.c

* subversion/libsvn_repos/rev_hunt.c

* subversion/libsvn_subr/auth.c

* subversion/libsvn_subr/cmdline.c

* subversion/libsvn_subr/compat.c

* subversion/libsvn_subr/config.c

* subversion/libsvn_subr/config_auth.c

* subversion/libsvn_subr/deprecated.c

* subversion/libsvn_subr/dso.c

* subversion/libsvn_subr/hash.c

* subversion/libsvn_subr/io.c

* subversion/libsvn_subr/mergeinfo.c

* subversion/libsvn_subr/opt.c

* subversion/libsvn_subr/properties.c

* subversion/libsvn_subr/simple_providers.c

* subversion/libsvn_subr/sorts.c

* subversion/libsvn_subr/ssl_client_cert_providers.c

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c

* subversion/libsvn_subr/ssl_server_trust_providers.c

* subversion/libsvn_subr/subst.c

* subversion/libsvn_subr/types.c

* subversion/libsvn_subr/username_providers.c

* subversion/libsvn_subr/utf.c

* subversion/libsvn_subr/win32_crypto.c

* subversion/libsvn_wc/adm_crawler.c

* subversion/libsvn_wc/adm_files.c

* subversion/libsvn_wc/conflicts.c

* subversion/libsvn_wc/copy.c

* subversion/libsvn_wc/deprecated.c

* subversion/libsvn_wc/diff_editor.c

* subversion/libsvn_wc/diff_local.c

* subversion/libsvn_wc/entries.c

* subversion/libsvn_wc/externals.c

* subversion/libsvn_wc/info.c

* subversion/libsvn_wc/lock.c

* subversion/libsvn_wc/node.c

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

* subversion/libsvn_wc/props.c

* subversion/libsvn_wc/revert.c

* subversion/libsvn_wc/status.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/upgrade.c

* subversion/libsvn_wc/wc_db_update_move.c

* subversion/libsvn_wc/wc_db_wcroot.c

* subversion/mod_dav_svn/repos.c

* subversion/mod_dav_svn/version.c

* subversion/svn/cl-conflicts.c

* subversion/svn/commit-cmd.c

* subversion/svn/conflict-callbacks.c

* subversion/svn/diff-cmd.c

* subversion/svn/help-cmd.c

* subversion/svn/notify.c

* subversion/svn/propedit-cmd.c

* subversion/svn/propget-cmd.c

* subversion/svn/props.c

* subversion/svn/status-cmd.c

* subversion/svn/status.c

* subversion/svn/svn.c

* subversion/svn/util.c

* subversion/svnadmin/svnadmin.c

* subversion/svnlook/svnlook.c

* subversion/svnrdump/dump_editor.c

* subversion/svnrdump/svnrdump.c

* subversion/svnrdump/util.c

* subversion/svnserve/serve.c

* subversion/svnsync/svnsync.c

* subversion/svnsync/sync.c

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

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

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

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

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

* subversion/tests/libsvn_wc/conflict-data-test.c

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

* subversion/tests/libsvn_wc/wc-test.c

* subversion/tests/svn_test_fs.c

* tools/server-side/fsfs-stats.c

Move the svn_string_private.h include back to the original location.

  1. … 162 more files in changeset.
Fix a 64 -> 32 integer conversion warning.

* subversion/libsvn_fs_fs/temp_serializer.c

(dir_data_t): The COUNT member is actually an int.

(serialize_dir): Use the int type consistently with COUNT.

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.
Get rid of the ever increasing number of private apis in svn_sorts.h by adding

a new private/svn_sorts_private.h file with the private parts and updating the

needed #include-s.

*AND*

Improve error reporting during xml parsing in ra_serf a bit.

For 1.9 the number of private apis in this public header more than doubled,

doubling the original filesize, while our policy is to never add private

functions in public headers.

* build.conf

(libsvn_subr): Add export.

* subversion/include/private/svn_sorts_private.h

New file, copied from ../svn_sorts.h.

* subversion/include/svn_sorts.h

Remove everything possible in our private namespace. Keeping some

references.

* subversion/libsvn_client/diff_local.c

* subversion/libsvn_client/import.c

* subversion/libsvn_client/info.c

* subversion/libsvn_client/list.c

* subversion/libsvn_client/merge.c

* subversion/libsvn_client/mergeinfo.c

* subversion/libsvn_client/status.c

* subversion/libsvn_delta/compat.c

* subversion/libsvn_fs_fs/cached_data.c

* subversion/libsvn_fs_fs/index.c

* subversion/libsvn_fs_fs/low_level.c

* subversion/libsvn_fs_fs/pack.c

* subversion/libsvn_fs_fs/temp_serializer.c

* subversion/libsvn_fs_fs/transaction.c

* subversion/libsvn_fs_x/index.c

* subversion/libsvn_fs_x/low_level.c

* subversion/libsvn_fs_x/pack.c

* subversion/libsvn_fs_x/transaction.c

* subversion/libsvn_ra/compat.c

* subversion/libsvn_ra_serf/inherited_props.c

* subversion/libsvn_ra_serf/lock.c

* subversion/libsvn_repos/dump.c

* subversion/libsvn_repos/fs-wrap.c

* subversion/libsvn_subr/cmdline.c

* subversion/libsvn_subr/hash.c

* subversion/libsvn_subr/mergeinfo.c

* subversion/libsvn_subr/sorts.c

* subversion/libsvn_wc/adm_ops.c

* subversion/libsvn_wc/diff_editor.c

* subversion/libsvn_wc/status.c

* subversion/libsvn_wc/wc_db.c

* subversion/libsvn_wc/wc_db_update_move.c

* subversion/mod_dav_svn/repos.c

* subversion/svn/log-cmd.c

* subversion/svn/propget-cmd.c

* subversion/svnadmin/svnadmin.c

* subversion/svnlook/svnlook.c

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

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

Fix includes.

* subversion/libsvn_ra_serf/util.c

(expat_response_handler): Combine XML errors with our custom parser errors

instead of only reporting one or the other.

  1. … 42 more files in changeset.
Within the FSFS lib, switch directory representation from APR hash

to sorted APR array. Since all directories get written to and read

from the cache, it is simply cheaper to use a similar container

outside the cache as we do in the cache serialized format.

To minimize parsing overhead, we write the directory entries in sorted

order to disk and skip sorting them in the reading code when we discover

that they are already properly ordered. This is not only fully backward

compatible but also solves the hash ordering problem when deltifying

directories.

* subversion/include/private/svn_subr_private.h

(svn_hash__entry_t,

svn_hash__read_entry): New private API factored out from svn_hash_read2.

This allows us to read hashes as well as arrays

with little extra code.

* subversion/libsvn_subr/hash.c

(svn_hash__read_entry): Implement using code taken from ...

(hash_read): ... this function which is now much simpler.

* subversion/libsvn_fs_fs/cached_data.h

(svn_fs_fs__rep_contents_dir): Return an array instead of a hash.

(svn_fs_fs__find_dir_entry): New utility function since we can't use

hash lookup anymore on directories.

* subversion/libsvn_fs_fs/cached_data.c

(sorted,

compare_dirents,

compare_dirent_name): New utility functions for sorting directories

and looking entries up.

(read_dir_entries): New function to fully read (one pass) directories

and entries the data directly into svn_fs_dirent_t.

(parse_dir_entries): Superseded by the above.

(get_dir_contents): Call the new reader function and return an array

instead of a hash.

(svn_fs_fs__rep_contents_dir): Update and simplify as no second parser

stage is needed anymore.

(svn_fs_fs__find_dir_entry): Implement.

(svn_fs_fs__rep_contents_dir_entry): Update dir entry lookup.

* subversion/libsvn_fs_fs/transaction.c

(unparse_dir_entry): Write a whole dirent directly to STREAM instead of

producing some intermediate string.

(unparse_dir_entries): Write a whole directory to STREAM (implicitly in

sorted, stable order)

(svn_fs_fs__set_entry): Simplify adapting to the new unparse_* code.

(collection_writer_t,

write_hash_to_stream,

write_directory_to_stream): Callback functions that allow all container

types (hash, array, possibly others) to be

written in a uniform fashon.

(write_hash_baton,

write_hash_handler,

write_hash_rep,

write_hash_delta_rep): Rename to ...

(write_container_baton,

write_container_handler,

write_container_rep,

write_container_delta_rep): ... these and update the rep writers to

use the new collection_writer_t callback.

(write_final_rev): Update caller and simplify code as the directory

order is already stable now.

* subversion/libsvn_fs_fs/temp_serializer.h

(svn_fs_fs__serialize_dir_entries,

svn_fs_fs__deserialize_dir_entries): Update docstrings to reflect the

new directory container type.

* subversion/libsvn_fs_fs/temp_serializer.c

(hash_data_t): Rename to ...

(dir_data_t): ... this without any other change since the in-cache

representation format remains unchanged.

(compare_dirent_id_names): Drop obsolete function since the array

is already sorted.

(serialize_dir,

deserialize_dir): Switch from de-/serializing hashes to processing

already correctly ordered arrays.

(return_serialized_dir_context,

svn_fs_fs__serialize_dir_entries,

svn_fs_fs__deserialize_dir_entries,

svn_fs_fs__extract_dir_entry): Purely syntactically adapt to renames

and changed types.

(slowly_replace_dir_entry): Updating a sorted array is harder than

updating a hash. Explicitly code the

different use-cases.

(svn_fs_fs__replace_dir_entry): Purely syntactically adapt to renames

and changed types.

* subversion/libsvn_fs_fs/dag.h

(svn_fs_fs__dag_dir_entries): Return an array instead of a hash.

* subversion/libsvn_fs_fs/dag.c

(svn_fs_fs__dag_dir_entries): Update and simplify as iteration over

arrays is straight-forward.

* subversion/libsvn_fs_fs/tree.c

(merge): Keep the basic principle but instead of dir hash lookups

use quasi-linear array scans; see svn_sort__array_lookup.

Don't modify any one the directory arrays as that would

be O(n^2).

(fs_dir_entries): Convert the internal dir representation into the

FS API level hash.

(crawl_directory_dag_for_mergeinfo,

verify_node): Iterate over directory arrays instead of hashes.

  1. … 9 more files in changeset.
Merged branches/fsfs-improvements into /trunk (clean merge).

Removed BRANCH-README.

  1. … 47 more files in changeset.
Fix the #include order such that svn_private_config.h is always

included first before any other svn header - if we also include

svn_hash.h.

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

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

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

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

subversion/libsvn_auth_gnome_keyring/gnome_keyring.c,

subversion/libsvn_client/add.c,

subversion/libsvn_client/cat.c,

subversion/libsvn_client/changelist.c,

subversion/libsvn_client/cleanup.c,

subversion/libsvn_client/commit.c,

subversion/libsvn_client/commit_util.c,

subversion/libsvn_client/copy.c,

subversion/libsvn_client/copy_foreign.c,

subversion/libsvn_client/ctx.c,

subversion/libsvn_client/delete.c,

subversion/libsvn_client/deprecated.c,

subversion/libsvn_client/diff.c,

subversion/libsvn_client/diff_local.c,

subversion/libsvn_client/diff_summarize.c,

subversion/libsvn_client/export.c,

subversion/libsvn_client/externals.c,

subversion/libsvn_client/import.c,

subversion/libsvn_client/info.c,

subversion/libsvn_client/iprops.c,

subversion/libsvn_client/list.c,

subversion/libsvn_client/locking_commands.c,

subversion/libsvn_client/log.c,

subversion/libsvn_client/merge.c,

subversion/libsvn_client/mergeinfo.c,

subversion/libsvn_client/patch.c,

subversion/libsvn_client/prop_commands.c,

subversion/libsvn_client/ra.c,

subversion/libsvn_client/repos_diff.c,

subversion/libsvn_client/resolved.c,

subversion/libsvn_client/revert.c,

subversion/libsvn_client/status.c,

subversion/libsvn_client/switch.c,

subversion/libsvn_client/update.c,

subversion/libsvn_client/util.c,

subversion/libsvn_delta/compat.c,

subversion/libsvn_delta/xdelta.c,

subversion/libsvn_diff/parse-diff.c,

subversion/libsvn_diff/util.c,

subversion/libsvn_fs/access.c,

subversion/libsvn_fs_base/bdb/changes-table.c,

subversion/libsvn_fs_base/bdb/env.c,

subversion/libsvn_fs_base/dag.c,

subversion/libsvn_fs_base/fs.c,

subversion/libsvn_fs_base/lock.c,

subversion/libsvn_fs_base/revs-txns.c,

subversion/libsvn_fs_base/tree.c,

subversion/libsvn_fs_fs/caching.c,

subversion/libsvn_fs_fs/fs_fs.c,

subversion/libsvn_fs/fs-loader.c,

subversion/libsvn_fs_fs/lock.c,

subversion/libsvn_fs_fs/temp_serializer.c,

subversion/libsvn_fs_fs/tree.c,

subversion/libsvn_fs_util/fs-util.c,

subversion/libsvn_ra/compat.c,

subversion/libsvn_ra/deprecated.c,

subversion/libsvn_ra_local/ra_plugin.c,

subversion/libsvn_ra/ra_loader.c,

subversion/libsvn_ra_serf/blame.c,

subversion/libsvn_ra_serf/blncache.c,

subversion/libsvn_ra_serf/commit.c,

subversion/libsvn_ra_serf/getlocations.c,

subversion/libsvn_ra_serf/getlocationsegments.c,

subversion/libsvn_ra_serf/getlocks.c,

subversion/libsvn_ra_serf/inherited_props.c,

subversion/libsvn_ra_serf/log.c,

subversion/libsvn_ra_serf/merge.c,

subversion/libsvn_ra_serf/mergeinfo.c,

subversion/libsvn_ra_serf/options.c,

subversion/libsvn_ra_serf/property.c,

subversion/libsvn_ra_serf/replay.c,

subversion/libsvn_ra_serf/serf.c,

subversion/libsvn_ra_serf/update.c,

subversion/libsvn_ra_serf/util.c,

subversion/libsvn_ra_serf/xml.c,

subversion/libsvn_ra_svn/client.c,

subversion/libsvn_ra_svn/editorp.c,

subversion/libsvn_ra_svn/marshal.c,

subversion/libsvn_repos/authz.c,

subversion/libsvn_repos/commit.c,

subversion/libsvn_repos/delta.c,

subversion/libsvn_repos/deprecated.c,

subversion/libsvn_repos/fs-wrap.c,

subversion/libsvn_repos/hooks.c,

subversion/libsvn_repos/log.c,

subversion/libsvn_repos/replay.c,

subversion/libsvn_repos/reporter.c,

subversion/libsvn_repos/repos.c,

subversion/libsvn_repos/rev_hunt.c,

subversion/libsvn_subr/auth.c,

subversion/libsvn_subr/cmdline.c,

subversion/libsvn_subr/compat.c,

subversion/libsvn_subr/config_auth.c,

subversion/libsvn_subr/config.c,

subversion/libsvn_subr/deprecated.c,

subversion/libsvn_subr/dso.c,

subversion/libsvn_subr/hash.c,

subversion/libsvn_subr/io.c,

subversion/libsvn_subr/mergeinfo.c,

subversion/libsvn_subr/opt.c,

subversion/libsvn_subr/properties.c,

subversion/libsvn_subr/simple_providers.c,

subversion/libsvn_subr/sorts.c,

subversion/libsvn_subr/ssl_client_cert_providers.c,

subversion/libsvn_subr/ssl_client_cert_pw_providers.c,

subversion/libsvn_subr/ssl_server_trust_providers.c,

subversion/libsvn_subr/subst.c,

subversion/libsvn_subr/types.c,

subversion/libsvn_subr/username_providers.c,

subversion/libsvn_subr/utf.c,

subversion/libsvn_subr/win32_crypto.c,

subversion/libsvn_wc/adm_crawler.c,

subversion/libsvn_wc/adm_files.c,

subversion/libsvn_wc/adm_ops.c,

subversion/libsvn_wc/conflicts.c,

subversion/libsvn_wc/copy.c,

subversion/libsvn_wc/deprecated.c,

subversion/libsvn_wc/diff_editor.c,

subversion/libsvn_wc/diff_local.c,

subversion/libsvn_wc/entries.c,

subversion/libsvn_wc/externals.c,

subversion/libsvn_wc/info.c,

subversion/libsvn_wc/lock.c,

subversion/libsvn_wc/node.c,

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

subversion/libsvn_wc/props.c,

subversion/libsvn_wc/revert.c,

subversion/libsvn_wc/status.c,

subversion/libsvn_wc/translate.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/upgrade.c,

subversion/libsvn_wc/wc_db.c,

subversion/libsvn_wc/wc_db_update_move.c,

subversion/libsvn_wc/wc_db_wcroot.c,

subversion/libsvn_wc/workqueue.c,

subversion/mod_dav_svn/activity.c,

subversion/mod_dav_svn/deadprops.c,

subversion/mod_dav_svn/lock.c,

subversion/mod_dav_svn/merge.c,

subversion/mod_dav_svn/mod_dav_svn.c,

subversion/mod_dav_svn/reports/update.c,

subversion/mod_dav_svn/repos.c,

subversion/mod_dav_svn/version.c,

subversion/svnadmin/svnadmin.c,

subversion/svnauth/svnauth.c,

subversion/svn/cl-conflicts.c,

subversion/svn/commit-cmd.c,

subversion/svn/conflict-callbacks.c,

subversion/svn/diff-cmd.c,

subversion/svn/help-cmd.c,

subversion/svnlook/svnlook.c,

subversion/svnmucc/svnmucc.c,

subversion/svn/notify.c,

subversion/svn/propedit-cmd.c,

subversion/svn/propget-cmd.c,

subversion/svn/props.c,

subversion/svnrdump/dump_editor.c,

subversion/svnrdump/svnrdump.c,

subversion/svnrdump/util.c,

subversion/svnserve/serve.c,

subversion/svn/status.c,

subversion/svn/status-cmd.c,

subversion/svn/svn.c,

subversion/svnsync/svnsync.c,

subversion/svnsync/sync.c,

subversion/svn/util.c,

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

subversion/tests/libsvn_repos/repos-test.c,

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

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

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

subversion/tests/libsvn_wc/conflict-data-test.c,

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

subversion/tests/libsvn_wc/wc-test.c,

subversion/tests/svn_test_fs.c,

tools/dev/fsfs-reorg.c,

tools/server-side/fsfs-stats.c): #include svn_private_config.h first

  1. … 180 more files in changeset.
Merge revision r1442068 from branches/fsfs-format7.

This speeds up the serialization into cache buffer format.

  1. … 3 more files in changeset.
* **/**

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.
Use svn_hash_gets and svn_hash_sets.

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

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

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

* subversion/libsvn_auth_gnome_keyring/gnome_keyring.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_delta/compat.c

* subversion/libsvn_delta/editor.c

* subversion/libsvn_diff/parse-diff.c

* subversion/libsvn_diff/util.c

* subversion/libsvn_fs/access.c

* subversion/libsvn_fs_base/bdb/changes-table.c

* subversion/libsvn_fs_base/dag.c

* subversion/libsvn_fs_base/fs.c

* subversion/libsvn_fs_base/lock.c

* subversion/libsvn_fs_base/revs-txns.c

* subversion/libsvn_fs_base/tree.c

* subversion/libsvn_fs_fs/fs_fs.c

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_fs/temp_serializer.c

* subversion/libsvn_fs_fs/tree.c

* subversion/libsvn_fs_util/fs-util.c

* subversion/libsvn_ra/compat.c

* subversion/libsvn_ra/deprecated.c

* subversion/libsvn_ra/ra_loader.c

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_ra_serf/blame.c

* subversion/libsvn_ra_serf/blncache.c

* subversion/libsvn_ra_serf/commit.c

* subversion/libsvn_ra_serf/getlocations.c

* subversion/libsvn_ra_serf/getlocationsegments.c

* subversion/libsvn_ra_serf/getlocks.c

* subversion/libsvn_ra_serf/inherited_props.c

* subversion/libsvn_ra_serf/log.c

* subversion/libsvn_ra_serf/merge.c

* subversion/libsvn_ra_serf/mergeinfo.c

* subversion/libsvn_ra_serf/options.c

* subversion/libsvn_ra_serf/property.c

* subversion/libsvn_ra_serf/serf.c

* subversion/libsvn_ra_serf/update.c

* subversion/libsvn_ra_serf/util.c

* subversion/libsvn_ra_serf/xml.c

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/editorp.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/mod_dav_svn/activity.c

* subversion/mod_dav_svn/lock.c

* subversion/mod_dav_svn/merge.c

* subversion/mod_dav_svn/reports/update.c

* subversion/mod_dav_svn/repos.c

* subversion/mod_dav_svn/version.c

* subversion/svn/cl-conflicts.c

* subversion/svn/commit-cmd.c

* subversion/svn/conflict-callbacks.c

* subversion/svn/help-cmd.c

* subversion/svn/propedit-cmd.c

* subversion/svn/propget-cmd.c

* subversion/svn/status-cmd.c

* subversion/svn/status.c

* subversion/svn/svn.c

* subversion/svn/util.c

* subversion/svnadmin/svnadmin.c

* subversion/svndumpfilter/svndumpfilter.c

* subversion/svnlook/svnlook.c

* subversion/svnmucc/svnmucc.c

* subversion/svnrdump/dump_editor.c

* subversion/svnrdump/load_editor.c

* subversion/svnrdump/svnrdump.c

* subversion/svnrdump/util.c

* subversion/svnserve/serve.c

* subversion/svnsync/svnsync.c

* subversion/svnsync/sync.c

  1. … 70 more files in changeset.
Introduce a constant that gives us the memory allocation overhead of

a serialization buffer and use that to specify "round" buffer sizes

(of 1kByte) instead of using seemingly magic sizes.

Once at it, fix a few typos in the doxygen strings.

* subversion/include/private/svn_temp_serializer.h

(): include svn_string.h to make sure svn_stringbuf_t is defined

(SVN_TEMP_SERIALIZER__OVERHEAD): define new constant

(svn_temp_serializer__init,

svn_temp_serializer__init_append,

svn_temp_serializer__pop,

svn_temp_serializer__revolve): fix typos in docstrings

* subversion/libsvn_fs_fs/dag.c

(svn_fs_fs__dag_serialize): use new constant to calculate initial

serialization buffer size

* subversion/libsvn_fs_fs/temp_serializer.c

(svn_fs_fs__serialize_node_revision): ditto

Suggested by: philip

  1. … 2 more files in changeset.