Remove duplicate calls to svn_pool_clear().  Follow-up to r1546842.

* subversion/libsvn_fs_fs/recovery.c
  (recover_get_largest_revision): Remove duplicate calls to
    svn_pool_clear().

Patch by: Evgeny Kotkov <evgeny.kotkov{_AT_}visualsvn.com>

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547421 13f79535-47bb-0310-9956-ffa450edef68
* subversion/mod_dav_svn/lock.c
  (format_locktoken): XML escape the token from the FS.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547427 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_fs/fs-loader.c
  (svn_fs_lock): Disallow control characters in lock tokens.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547445 13f79535-47bb-0310-9956-ffa450edef68
* subversion/libsvn_fs_fs/fs_fs.c
  (upgrade_body): Fix a docstring typo.  No functional change.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547450 13f79535-47bb-0310-9956-ffa450edef68
Fix a minor consistency issue when creating pre-1.5 repositories.

Since we didn't have config files back then, we don't hotcopy them.
Thus, we should not even create it in the first place.

* subversion/libsvn_fs_fs/fs_fs.c
  (svn_fs_fs__create): Only create fsfs config files when all
                       servers reading that repo would actually
                       use the that file.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547454 13f79535-47bb-0310-9956-ffa450edef68
Fix a segfault with svnserve and pre-1.5 FSFS repositories.

* subversion/libsvn_repos/config_pool.c
  (find_repos_config): Don't try to map checksums that we don't know.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547455 13f79535-47bb-0310-9956-ffa450edef68
* subversion/tests/svn_test_main.c
  (main): C tests should accept 1.9 as an explicit compat version -
          just like the Python tests do.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547458 13f79535-47bb-0310-9956-ffa450edef68
Make repos-test complete for pre-1.5 compat runs.

* subversion/tests/libsvn_repos/repos-test.c
  (node_location_segments): Report skipped tests as such.
  (test_get_file_revs): Skip for pre-1.5 repos because the feature is
                        not supported for them.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547460 13f79535-47bb-0310-9956-ffa450edef68
Clean up FSX pack tests.  Use a centralized check to skip these
tests for non-FSX repositories.  Also, drop unnecessary version
checks that were carried over from FSFS, i.e. dead code.

* subversion/tests/libsvn_fs_x/fs-x-pack-test.c
  (create_packed_filesystem): Skip tests for pre-1.9 compat or
                              non-FSX repositories.
  (pack_even_filesystem,
   read_packed_fs,
   commit_packed_fs,
   get_set_revprop_packed_fs,
   get_set_large_revprop_packed_fs,
   get_set_huge_revprop_packed_fs,
   recover_fully_packed,
   file_hint_at_shard_boundary,
   test_reps,
   pack_shard_size_one): Remove local test compat check.
  (pack_filesystem,
   test_info): Ditto.  Also, remove dead code.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547465 13f79535-47bb-0310-9956-ffa450edef68
Clean up FSFS pack tests.  Use a centralized check to skip these
tests for non-FSFS repositories.

* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
  (create_packed_filesystem): Skip tests for non-FSFS repositories.
  (pack_filesystem,
   pack_even_filesystem,
   recover_fully_packed): Remove the test-local checks.
  (upgrade_txns_to_log_addressing): Return a proper "skip" error
                                    when skipping this test.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547470 13f79535-47bb-0310-9956-ffa450edef68
* subversion/tests/cmdline/prop_tests.py
  (atomic_over_ra): Fix a Python compiler error by providing the
                    correct number of parameters.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547478 13f79535-47bb-0310-9956-ffa450edef68
Make svnadmin-tests pass for 1.5 to 1.9 compat runs.

* subversion/tests/cmdline/svntest/main.py
  (fs_has_rep_sharing,
   fs_has_pack): New feature presence checks that we can use
                 e.g. for @SkipUnless conditions.

* subversion/tests/cmdline/svntest/verify.py
  (RegexOutput.insert,
   RegexListOutput.insert): Add these methods that allow us to e.g.
                            prepend lines to svadmin verify outputs
                            depending on metadata checks being done.
  (RegexListOutput.__init__): Allow us to start with an empty list.

* subversion/tests/cmdline/svnadmin_tests.py
  (verify_windows_paths_in_repos): Use the new feature checks instead
                                   of local logic.
  (load_ranges): Filter sha1 checksums from the expected dump files
                 when we use pre-1.5 repositories.
  (hotcopy_incremental_packed): Skip this when the repo doesn't support
                                packing.
  (verify_keep_going,
   verify_invalid_path_changes,
   verify_denormalized_names): Insert "verifying metadata" patterns
                               into expected output depending on repo
                               capabilities.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547484 13f79535-47bb-0310-9956-ffa450edef68
Fix 'svnadmin recover' regression crash with old repositories
(--compatible-version=1.3 / 1.2 / 1.1).  Follow-up to r1532029.

* subversion/libsvn_fs_fs/recovery.c
  (svn_fs_fs__find_max_ids): Call svn_fs_fs__open_pack_or_rev_file in order to
    initialize REV_FILE before passing it as an argument to other functions
    (namely, svn_fs_fs__item_offset).

Patch by: Evgeny Kotkov <evgeny.kotkov{_AT_}visualsvn.com>

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547486 13f79535-47bb-0310-9956-ffa450edef68
Correctly handle the absence of MINOR_VERSION when creating test repositories
in the 'create_repos' helper.  "if not MINOR_VERSION" in this case is
equivalent to "if MINOR_VERSION is None or MINOR_VERSION == 0", which behaves
incorrectly for the case when the caller actually passes MINOR_VERSION = 0.
Follow-up to r1245799.

* subversion/tests/cmdline/svntest/main.py
  (create_repos): Use "if is None" instead of "if not" when checking the
    MINOR_VERSION for absence.

Patch by: Evgeny Kotkov <evgeny.kotkov{_AT_}visualsvn.com>

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547488 13f79535-47bb-0310-9956-ffa450edef68
Rework the "recover --pre-1.4-compatible" svnadmin test.  Bump the
MINOR_VERSION of the created repository to 3, because FSFS repositories with
MINOR_VERSION = 0 is prohibited since r1494223 (and creating a repository with
MINOR_VERSION = 3 does the same as the 'svnadmin create --pre-1.4-compatible'
call).  Use run_and_verify_svnadmin instead of run_svnadmin so that the test
actually checks the result of the call instead of always reporting false
positive.

* subversion/tests/cmdline/svnadmin_tests.py
  (recover_old): Bump MINOR_VERSION to 3, use run_and_verify_svnadmin instead
    of run_svnadmin.

Patch by: Evgeny Kotkov <evgeny.kotkov{_AT_}visualsvn.com>

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547489 13f79535-47bb-0310-9956-ffa450edef68
Enable 'svn cat --ignore-keywords'.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Add option.

* subversion/svn/cat-cmd.c
  (svn_cl__cat): Update to non-deprecated function and pass option.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547517 13f79535-47bb-0310-9956-ffa450edef68
Skip tests that are known to depend on server-side mergeinfo support
in 1.3 and 1.4 compat mode.

* subversion/tests/cmdline/revert_tests.py
  (create_superflous_actual_node): 
  (revert_empty_actual): 
  (revert_empty_actual_recursive): 

* subversion/tests/cmdline/update_tests.py
  (update_empty_hides_entries): 

--This line, and those below, will be ignored--

* subversion/tests/cmdline/blame_tests.py
  (blame_output_after_merge): Skip if the server does not support mergeinfo.
 
* subversion/tests/cmdline/externals_tests.py
  (merge_target_with_externals): Same.

* subversion/tests/cmdline/log_tests.py
  (merge_sensitive_log_copied_path_inherited_mergeinfo): Same.

* subversion/tests/cmdline/mergeinfo_tests.py
  (mergeinfo,
   mergeinfo_on_unknown_url,
   non_inheritable_mergeinfo): Same.

* subversion/tests/cmdline/merge_reintegrate_tests.py
  (reintegrate_with_rename,
   reintegrate_branch_never_merged_to,
   reintegrate_fail_on_modified_wc,
   reintegrate_fail_on_mixed_rev_wc,
   reintegrate_fail_on_switched_wc,
   reintegrate_on_shallow_wc,
   merge_file_with_space_in_its_path,
   reintegrate_with_self_referential_mergeinfo,
   added_subtrees_with_mergeinfo_break_reintegrate,
   two_URL_merge_removes_valid_mergeinfo_from_target,
   reintegrate_creates_bogus_mergeinfo,
   no_source_subtree_mergeinfo,
   reintegrate_symlink_deletion,
   no_op_reintegrate,
   renamed_branch_reintegrate): Same.
 
* subversion/tests/cmdline/merge_tests.py
  (merge_with_implicit_target_using_r,
   merge_range_predates_history,
   commit_to_subtree_added_by_merge,
   copy_then_replace_via_merge,
   skipped_files_get_correct_mergeinfo,
   merge_into_wc_for_deleted_branch,
   record_only_merge_creates_self_referential_mergeinfo,
   merge_with_os_deleted_subtrees,
   merge_change_to_file_with_executable,
   merge_properties_on_adds): Same.

* subversion/tests/cmdline/resolve_tests.py
  (resolved_on_deleted_item): Same.
 
* subversion/tests/cmdline/revert_tests.py
  (revert_empty_actual,
   revert_empty_actual_recursive): Same.

* subversion/tests/cmdline/update_tests.py
  (mergeinfo_updates_merge_with_local_mods): Same.

git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547527 13f79535-47bb-0310-9956-ffa450edef68
* contrib/server-side/svncutter/svncutter:
(doreduce): New subcommand for topologically reducing a dump.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547705 13f79535-47bb-0310-9956-ffa450edef68
* contrib/server-side/svncutter/svncutter:
(strip): change nomenclature to be consistent with reposurgeon.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1547712 13f79535-47bb-0310-9956-ffa450edef68
On Windows Stop using FlushFileBuffers() on temporary files that are used for
representing symlinks.

Calling FlushFileBuffers() does not always work correctly on network
filesystems, and the atomicity for this specific scenario is already
guaranteed via the rename after the write and the workqueue (only caller).

This fixes checking out of ^/subversion/trunk to a NAS for me, where it used
to fail because we have a symlink for svnpubsub.

* subversion/libsvn_subr/subst.c
  (create_special_file_from_stream): Stop using svn_io_write_unique().


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