Author: julianfoad Date: Wed Mar 2 12:24:40 2022 New Revision: 1898525 URL: http://svn.apache.org/viewvc?rev=1898525&view=rev Log: Multi-WC-format: clean up some client APIs.
* subversion/include/svn_client.h, subversion/libsvn_client/upgrade.c (svn_client_wc_format_t): Delete. (svn_client_get_wc_formats_supported): New, simpler replacement for... (svn_client_supported_wc_formats): ... this, now removed. (svn_client_wc_version_from_format): Rename from 'svn_client__wc_version_from_format' to be a public API; remove a scratch-pool argument that was likely to be of net negative value. * subversion/libsvn_wc/wc.h (SVN_WC__SUPPORTED_VERSION): Update comment. * subversion/svn/help-cmd.c (print_supported_wc_formats): Update callers. * subversion/svn/info-cmd.c (print_info_item): Update callers. * subversion/svn/svn.c (parse_compatible_version): Update callers. Modified: subversion/trunk/subversion/include/svn_client.h subversion/trunk/subversion/libsvn_client/upgrade.c subversion/trunk/subversion/libsvn_wc/wc.h subversion/trunk/subversion/svn/help-cmd.c subversion/trunk/subversion/svn/info-cmd.c subversion/trunk/subversion/svn/svn.c Modified: subversion/trunk/subversion/include/svn_client.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=1898525&r1=1898524&r2=1898525&view=diff ============================================================================== --- subversion/trunk/subversion/include/svn_client.h (original) +++ subversion/trunk/subversion/include/svn_client.h Wed Mar 2 12:24:40 2022 @@ -1244,7 +1244,7 @@ svn_client_args_to_target_array(apr_arra * client that supports the metadata format of the * created working copy; @c NULL means the library's default * format. See svn_client_default_wc_version(), - * svn_client_supported_wc_formats(). + * svn_client_get_wc_formats_supported(). * @param[in] ctx The standard client context, used for authentication and * notification. * @param[in] pool Used for any temporary allocation. @@ -4402,7 +4402,7 @@ svn_client_cleanup(const char *dir, * @a wc_format_version is the version number of the Subversion client * that supports a given WC metadata format; @c NULL means the library's * default format. See svn_client_default_wc_version(), - * svn_client_supported_wc_formats(). + * svn_client_get_wc_formats_supported(). * * Use @a scratch_pool for any temporary allocations. * @@ -4446,24 +4446,16 @@ const svn_version_t * svn_client_latest_wc_version(apr_pool_t *result_pool); /** - * Information about a WC version. + * Returns a list of the WC formats supported by the client library. * - * Only the @c .major and @c .minor version fields are significant: so a - * version_max value of 1.15.0 for example means "up to 1.15.x". + * The list is sorted from oldest to newest, and terminated by a zero entry. * - * @warning Do not manually allocate structs of this type, as fields may - * be added in the future. + * The result is allocated in @a result_pool and/or statically. * * @since New in 1.15. */ -typedef struct svn_client_wc_format_t { - /* Oldest version of svn libraries known to support this WC version */ - const svn_version_t *version_min; - /* Newest version of svn libraries known to support this WC version. */ - const svn_version_t *version_max; - /* The WC format number of this format, as defined by libsvn_wc. */ - int wc_format; -} svn_client_wc_format_t; +const int * +svn_client_get_wc_formats_supported(apr_pool_t *result_pool); /** Return the version of the Subversion library that first supported * the given WC format, @a wc_format. @@ -4471,23 +4463,8 @@ typedef struct svn_client_wc_format_t { * @since New in 1.15. */ const svn_version_t * -svn_client__wc_version_from_format(int wc_format, - apr_pool_t *result_pool, - apr_pool_t *scratch_pool); - -/** - * Returns a list of the WC formats supported by the client library. - * - * The list is sorted from oldest to newest, and terminated by an entry - * containing all null/zero fields. - * - * The returned data are allocated in @a result_pool and/or statically. - * - * @since New in 1.15. - */ -const svn_client_wc_format_t * -svn_client_supported_wc_formats(apr_pool_t *result_pool, - apr_pool_t *scratch_pool); +svn_client_wc_version_from_format(int wc_format, + apr_pool_t *result_pool); /** @} */ Modified: subversion/trunk/subversion/libsvn_client/upgrade.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/upgrade.c?rev=1898525&r1=1898524&r2=1898525&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_client/upgrade.c (original) +++ subversion/trunk/subversion/libsvn_client/upgrade.c Wed Mar 2 12:24:40 2022 @@ -201,9 +201,8 @@ svn_client_upgrade2(const char *path, } const svn_version_t * -svn_client__wc_version_from_format(int wc_format, - apr_pool_t *result_pool, - apr_pool_t *scratch_pool) +svn_client_wc_version_from_format(int wc_format, + apr_pool_t *result_pool) { static const svn_version_t version_1_0 = { 1, 0, 0, NULL }, @@ -227,17 +226,15 @@ svn_client__wc_version_from_format(int w return NULL; } -const svn_client_wc_format_t * -svn_client_supported_wc_formats(apr_pool_t *result_pool, - apr_pool_t *scratch_pool) +const int * +svn_client_get_wc_formats_supported(apr_pool_t *result_pool) { - static const svn_version_t version_1_8 = { 1, 8, 0, NULL }; - static const svn_version_t version_1_15 = { 1, 15, 0, NULL }; - static const svn_client_wc_format_t versions[] = { - { &version_1_8, &version_1_15, SVN_WC__SUPPORTED_VERSION }, - { &version_1_15, &version_1_15, SVN_WC__VERSION }, - { NULL, NULL, 0 } + static const int versions[] = { + SVN_WC__SUPPORTED_VERSION, + SVN_WC__VERSION, + 0 }; + return versions; } Modified: subversion/trunk/subversion/libsvn_wc/wc.h URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_wc/wc.h?rev=1898525&r1=1898524&r2=1898525&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_wc/wc.h (original) +++ subversion/trunk/subversion/libsvn_wc/wc.h Wed Mar 2 12:24:40 2022 @@ -170,7 +170,7 @@ extern "C" { /* The minimum WC version supported by the client. IMPORTANT: Update the implementation of svn_client_default_wc_version() - and svn_client_supported_wc_formats() + and svn_client_get_wc_formats_supported() whenever you change this value! */ #define SVN_WC__SUPPORTED_VERSION 31 Modified: subversion/trunk/subversion/svn/help-cmd.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/help-cmd.c?rev=1898525&r1=1898524&r2=1898525&view=diff ============================================================================== --- subversion/trunk/subversion/svn/help-cmd.c (original) +++ subversion/trunk/subversion/svn/help-cmd.c Wed Mar 2 12:24:40 2022 @@ -47,19 +47,18 @@ print_supported_wc_formats(svn_stringbuf const char *prefix, apr_pool_t *pool) { - const svn_client_wc_format_t *wc_formats - = svn_client_supported_wc_formats(pool, pool); + const int *wc_formats = svn_client_get_wc_formats_supported(pool); int i; - for (i = 0; wc_formats[i].version_min; i++) + for (i = 0; wc_formats[i]; i++) { - const svn_client_wc_format_t *v = &wc_formats[i]; - const svn_version_t *ver = v->version_min; + const svn_version_t *ver + = svn_client_wc_version_from_format(wc_formats[i], pool); const char *s = apr_psprintf( pool, _("%sWC format %d, compatible with Subversion v%d.%d and newer\n"), - prefix, v->wc_format, ver->major, ver->minor); + prefix, wc_formats[i], ver->major, ver->minor); svn_stringbuf_appendcstr(output, s); } Modified: subversion/trunk/subversion/svn/info-cmd.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/info-cmd.c?rev=1898525&r1=1898524&r2=1898525&view=diff ============================================================================== --- subversion/trunk/subversion/svn/info-cmd.c (original) +++ subversion/trunk/subversion/svn/info-cmd.c Wed Mar 2 12:24:40 2022 @@ -1254,8 +1254,7 @@ print_info_item(void *baton, case info_item_wc_compatible_version: { const svn_version_t *wc_ver - = svn_client__wc_version_from_format(info->wc_info->wc_format, - pool, pool); + = svn_client_wc_version_from_format(info->wc_info->wc_format, pool); const char *s = apr_psprintf(pool, "%d.%d", wc_ver->major, wc_ver->minor); Modified: subversion/trunk/subversion/svn/svn.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/svn.c?rev=1898525&r1=1898524&r2=1898525&view=diff ============================================================================== --- subversion/trunk/subversion/svn/svn.c (original) +++ subversion/trunk/subversion/svn/svn.c Wed Mar 2 12:24:40 2022 @@ -2039,12 +2039,10 @@ parse_compatible_version(svn_cl__opt_sta const char *utf8_opt_arg; svn_version_t *target; - /* Get the supported WC formats. WC formats are always defined by a X.Y.0 - release, and svn_client_supported_wc_formats() should return such - a value. */ - const svn_client_wc_format_t *formats_supported - = svn_client_supported_wc_formats(result_pool, result_pool); - const svn_version_t *supported = formats_supported[0].version_min; + const int *formats_supported + = svn_client_get_wc_formats_supported(result_pool); + const svn_version_t *supported + = svn_client_wc_version_from_format(formats_supported[0], result_pool); const svn_version_t *current = svn_client_version(); const svn_version_t latest = {current->major, current->minor, 0, NULL};