Add a new `compatible-version` config option.

This option sets the default working copy format version, allowing users to
configure the default wc compatibility level globally.  Newly created and
upgraded working copies will by default be compatible with the specified
Subversion version.

In the test suite, use the new config option for the customized runs with the
--wc-format-version argument, instead of manually inserting the corresponding
--compatible-version argument during `svn checkout` and `svn upgrade` calls.

* subversion/include/svn_config.h
  (SVN_CONFIG_OPTION_COMPATIBLE_VERSION): New.

* subversion/libsvn_subr/config_file.c
  (svn_config_ensure): Add new config option.

* subversion/include/svn_client.h
  (svn_client_default_wc_version): Now accepts an svn_client_ctx_t.
  (svn_client_checkout4,
   svn_client_checkout3,
   svn_client_upgrade2,
   svn_client_upgrade): Tweak the docstrings so that they would lead to
   the svn_client_default_wc_version(), as opposed to providing a custom
   description of the same concept.

* subversion/libsvn_client/upgrade.c
  (): Include svn_hash.h and svn_subr_private.h.
  (svn_client_default_wc_version): Check if we have a specific version in
   the config or use the default.
  (svn_client_upgrade2): Call svn_client_default_wc_version().

* subversion/libsvn_client/checkout.c
  (svn_client__checkout_internal):
   Adjust calling site of svn_client_default_wc_version().

* subversion/svn/upgrade-cmd.c
  (svn_cl__upgrade): Adjust calling site of svn_client_default_wc_version().

* subversion/tests/cmdline/svntest/main.py
  (create_config_dir): Accept the wc_format_version and translate it into
   an appropriate config value.
  (execute_tests): Adjust call to create_config_dir().
  (_with_wc_format_version): Remove.
  (run_svn): Don't use the _with_wc_format_version() function.

* subversion/tests/cmdline/checkout_tests.py
  (checkout_compatible_version_arg,
   checkout_compatible_version_config): New tests.
  (test_list): Run new tests.

* subversion/tests/cmdline/upgrade_tests.py
  (upgrade_compatible_version_arg,
   upgrade_compatible_version_config): New tests.
  (test_list): Run new tests.


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