* subversion/tests/cmdline/basic_tests.py
  (basic_mkdir_url_with_parents): Expect that some stdoutput may be produced
    in this test, to fix svnserve test which produces the same error a bit
    later during the commit.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1606702 13f79535-47bb-0310-9956-ffa450edef68
* subversion/bindings/javahl/native/RemoteSession.cpp
  (RemoteSession::open): Fix invalid assertion condition.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1606724 13f79535-47bb-0310-9956-ffa450edef68
Remove a compilation warning in JavaHL.

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
  (SVNRemoteTests.RemoteStatusReceiver.StatInfo.hashCode): Add mandatory overload.
  (SVNRemoteTests.RemoteStatusReceiver.StatInfo.compareTo): Add decorator.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1606728 13f79535-47bb-0310-9956-ffa450edef68
Fix a crash in JavaHL.

* subversion/bindings/javahl/native/CreateJ.cpp
  (fill_property_map): Treat property diffs as an APR array of svn_prop_t
   elements, not svn_prop_t* pointers.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1606731 13f79535-47bb-0310-9956-ffa450edef68
Instead of manually fiddling with FSFS index data in our test suite,
use the svnfsfs tool to read and rewrite the indexes after we manipulated
the revision contents.

* subversion/tests/cmdline/svnadmin_tests.py
  (FSFS_Index): New utility class handling all the index access.
  (read_l2p): Drop obsolete utility.
  (set_changed_path_list): Use the new class to read the index data and
                           to keep it consistent with our manipulated
                           rev content.
  (verify_invalid_path_changes): Update expected errors as we don't get
                                 low-level checksum mismatches anymore.

* subversion/tests/cmdline/svntest/main.py
  (svnfsfs_binary): New tool constant similar to svnauthz-binary.
  (run_svnfsfs): New runner utility for the new binary.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1606743 13f79535-47bb-0310-9956-ffa450edef68
Create r0 contents only after initializing the config data, thus
removing the need to temporarily initialize parts of the FFD.

* subversion/libsvn_fs_fs/fs_fs.c
  (write_revision_zero): Remove FFD init bits. 
  (svn_fs_fs__create): Write r0 only after initializing all in-memory data.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1606744 13f79535-47bb-0310-9956-ffa450edef68
Fix svnadmin_tests.py with Python versions before 2.6.

* subversion/tests/cmdline/svnadmin_tests.py
  (modify_time): Use old style formatting rather than the format() string
    method added in 2.6.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1606770 13f79535-47bb-0310-9956-ffa450edef68
Follow-up to r1606770.

* subversion/tests/cmdline/svnadmin_tests.py
  (FSFS_Index.modify_item): LEN shall also be in HEX.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1606801 13f79535-47bb-0310-9956-ffa450edef68
Verify low-level checksums on FSFS parts that aren't checksummed otherwise.

Since representations (dir, file, prop) do get checksumed when being
reconstructed from deltas or read plainly, we only need to check noderevs
and changed paths lists.  Also, we restrict the check to block-read mode
because only then do we get the P2L data containing the checksums for free.

Low memory, "just like f6" setups neither get the overhead nor the benefits
of this.

* subversion/libsvn_fs_fs/cached_data.c
  (auto_select_stream): Drop and introduce ...
  (read_item): ... instead.  It will read and verify the complete item.
  (block_read_changes,
   block_read_noderev): Update callers.

* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
  (metadata_checksumming): New test case showing how low-level checksums
                           will catch otherwise undetected corruption.
  (test_funcs): Register the new test.

Suggested by: zhakov

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1606840 13f79535-47bb-0310-9956-ffa450edef68
Follow-up to r1606840: Update another svnadmin verify check.

* subversion/tests/cmdline/svnadmin_tests.py
  (verify_keep_going): Expect separate output for repos with low-level
                       checksum checks vs. those without. 

* subversion/tests/cmdline/svntest/verify.py
  (RegexListOutput.extend): Add trivial new method.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1606902 13f79535-47bb-0310-9956-ffa450edef68
Following up on r1485488, remove unneeded && expression which is already part
of the loop condition.

* subversion/libsvn_diff/diff_file.c
  (find_identical_suffix): Remove unnecessary operation.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1607063 13f79535-47bb-0310-9956-ffa450edef68
Remove an unused argument from a static function.

* subversion/libsvn_diff/diff_file.c
  (read_chunk): Remove unused path argument.

  (increment_chunk,
   decrement_chunk,
   find_identical_suffix,
   datasources_open,
   datasource_get_next_token,
   token_compare): Update caller.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1607070 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_diff/lcs.c
  (svn_diff__lcs): Following up on r1128857, replace tab with 4 spaces.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1607075 13f79535-47bb-0310-9956-ffa450edef68
Replace a few more tab characters with spaces. No functional changes.

* subversion/libsvn_client/prop_commands.c
  (svn_client_revprop_set2):

* subversion/libsvn_delta/xdelta.c
  (block):

* subversion/libsvn_fs_fs/dag.c
  (svn_fs_fs__dag_serialize):

* subversion/libsvn_fs_x/dag.c
  (svn_fs_x__dag_serialize):

* subversion/libsvn_ra_serf/commit.c
  (proppatch_walker):

* subversion/libsvn_subr/utf_width.c
  (mk_wcwidth):

* subversion/libsvn_wc/questions.c
  (compare_and_verify):

* subversion/tests/cmdline/atomic-ra-revprop-change.c
  (change_rev_prop): Replace tabs with spaces.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1607085 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_ra_serf/commit.c
  (abort_edit): Clear arctivity and txn url, to avoid deleting a txn
    twice if a buggy caller calls abort twice.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1607104 13f79535-47bb-0310-9956-ffa450edef68
Remove code duplication.

* subversion/libsvn_ra_svn/client.c
  (ra_svn_open): Switch to dual-pool and ...
  (ra_svn_open_pool): ... add a single-pool wrapper.
  (ra_svn_dup_session): Call ra_svn_open instead of duplicating code.
  (ra_svn_vtable): Use single-pool wrapper.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1607212 13f79535-47bb-0310-9956-ffa450edef68
Avoid a theoretical case where we call editor->abort_edit() twice.
(Only triggerable by an import, which imported nothing... where the
 first abort fails)

Found by: ivan

* subversion/libsvn_client/import.c
  (import_ctx_t): Remove TODO comment that describes implementation that
    doesn't follow current best practices.
  (import): Add output argument describing whether we committed something.
    Allocate import_ctx on the stack. Remove abort on no-change.
  (svn_client_import5): Use new information to determine when to abort.
    Always destroy iterpool.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1607299 13f79535-47bb-0310-9956-ffa450edef68
Eliminate FSFS format 7 CPU overhead from svnadmin.

This introduces a simply threshold value for the cache sizes above
which we will enable block-read.

While svnadmin is the ideal application for "block-read" (read all
repo data somewhat linearly and use virtually all of it), the very
small default cache sizes are simply not enough to benefit from it.
As a result, hit rates drop even further.

For larger caches, the feature equalizes most of the structural
disadvantage that packed f7 repos have over f6 (f6 is in revision
order and svnadmin is the only tool to read it in that ordering).
For smaller caches, only meta data and certain temporary objects
get cache while we heavily rely on the OS disk cache to provide
us with data.  This is equally true for all FSFS formats.

* subversion/svnadmin/svnadmin.c
  (BLOCK_READ_CACHE_THRESHOLD): Declare and document the new threshold.
  (open_repos): Set the FS config option for "block-read" depending
                on the configured membuffer cache sizes.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1607306 13f79535-47bb-0310-9956-ffa450edef68
Organize the contents of svn_repos.h for clarity, especially with regard to grouping
of declarations for the Doxygen documentation. Update some doc strings.

(A cherry-pick merge of r1607334 from the move-tracking-2 branch where I
accidentally committed it first.)

* subversion/include/svn_repos.h
  (svn_repos_load_uuid): Move into the 'svn_repos_dump_load' group.
  (svn_repos_authz_func_t): Tweak doc string, as it's now widely used.
  (svn_repos_file_rev_handler_t): Move adjacent to where it is used.
  (svn_repos_remember_client_capabilities): Move adjacent to the repository
    capabilities group.
  (svn_repos_fs_change_node_prop): Update documentation about what exactly
    is validated.
  (svn_repos_fs_get_inherited_props): Move into the properties group.
  Add new Doxygen groupings around existing groups of declarations:
  'svn_repos_authz_callbacks', 'svn_repos_notifications',
  'svn_repos_capabilities', 'svn_repos_properties'.
  In the 'svn_repos_dump_load' group, mention verifying as well.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1607346 13f79535-47bb-0310-9956-ffa450edef68
* subversion/include/svn_repos.h
  Remove an ancient (pre-1.0) speculative comment.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1607349 13f79535-47bb-0310-9956-ffa450edef68