[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1331050 - in /subversion/trunk/subversion: include/private/ libsvn_fs/ libsvn_fs_base/ libsvn_fs_fs/ libsvn_fs_util/

From: Stefan Sperling <stsp_at_elego.de>
Date: Tue, 8 May 2012 13:00:34 +0200

On Thu, Apr 26, 2012 at 07:52:40PM -0000, danielsh_at_apache.org wrote:
> Author: danielsh
> Date: Thu Apr 26 19:52:39 2012
> New Revision: 1331050
>
> URL: http://svn.apache.org/viewvc?rev=1331050&view=rev
> Log:
> Store UUID in svn_fs_t rather than in FSAP_DATA. This improves upon the situation created by r1330932.

Can you please update this log message to clearly explain what
"the situation" is? As written this log message is rather opaque.
I don't understand it.

>
> Suggested by: gstein
>
>
> Update libsvn_fs:
>
> * subversion/libsvn_fs/fs-loader.h
> (fs_vtable_t.get_uuid): Remove this member, with comment.
> (svn_fs_t.uuid): New struct member.
>
> * subversion/libsvn_fs/fs-loader.c
> (svn_fs_get_uuid): Track new location of UUID.
>
>
> Update FSFS for the new location:
>
> * subversion/libsvn_fs_fs/fs_fs.h,
> subversion/libsvn_fs_fs/fs_fs.c:
> (svn_fs_fs__get_uuid): Delete this function. It is subsumed into
> svn_fs_fs__open() and svn_fs_fs__create().
>
> * subversion/libsvn_fs_fs/caching.c
> (svn_fs_fs__initialize_caches, svn_fs_fs__initialize_txn_caches):
> * subversion/libsvn_fs_fs/fs.c
> (fs_serialized_init):
> * subversion/libsvn_fs_fs/fs_fs.c
> (svn_fs_fs__open, hotcopy_incremental_check_preconditions,
> hotcopy_incremental_check_preconditions, svn_fs_fs__set_uuid):
> * subversion/libsvn_fs_fs/tree.c
> (fs_same_p):
> Track new location of UUID.
>
> * subversion/libsvn_fs_fs/fs.c
> (fs_vtable): Drop GET_UUID() member.
>
> * subversion/libsvn_fs_fs/fs.h
> (fs_fs_data_t.uuid): Remove this member.
>
>
> Update BDB for the new location:
>
> * subversion/libsvn_fs_base/fs.c
> (populate_opened_fs): New function.
> (base_create, base_upgrade): Call it to populate svn_fs_t->uuid.
>
> * subversion/libsvn_fs_base/uuid.h
> (svn_fs_base__get_uuid): Rename to..
> (svn_fs_base__populate_uuid): .. this, and change signature.
>
> * subversion/libsvn_fs_base/uuid.c
> (svn_fs_base__get_uuid): Rename to..
> (svn_fs_base__populate_uuid): .. this, and adapt to the new signature.
>
> * subversion/libsvn_fs_base/tree.c
> (fs_same_p):
> * subversion/libsvn_fs_base/uuid.c
> (svn_fs_base__set_uuid):
> Track new location of UUID.
>
> * subversion/libsvn_fs_base/fs.c
> (fs_vtable): Drop GET_UUID() member.
>
> * subversion/libsvn_fs_base/fs.h
> (base_fs_data_t.uuid): Remove this member.
>
>
>
> Revert r1330932:
>
> * subversion/libsvn_fs/fs-loader.c
> (cache_uuid): Remove this function.
> (svn_fs_open, svn_fs_create): Update callers.
> (svn_fs_open_berkeley, svn_fs_create_berkeley): Update callers.
>
> * subversion/libsvn_fs_util/fs-util.c
> (svn_fs__identifier): Remove.
>
> * subversion/include/private/svn_fs_util.h
> (svn_fs__identifier): Reimplement as a macro. It will be removed in the
> next revision.
>
> Modified:
> subversion/trunk/subversion/include/private/svn_fs_util.h
> subversion/trunk/subversion/libsvn_fs/fs-loader.c
> subversion/trunk/subversion/libsvn_fs/fs-loader.h
> subversion/trunk/subversion/libsvn_fs_base/fs.c
> subversion/trunk/subversion/libsvn_fs_base/fs.h
> subversion/trunk/subversion/libsvn_fs_base/tree.c
> subversion/trunk/subversion/libsvn_fs_base/uuid.c
> subversion/trunk/subversion/libsvn_fs_base/uuid.h
> subversion/trunk/subversion/libsvn_fs_fs/caching.c
> subversion/trunk/subversion/libsvn_fs_fs/fs.c
> subversion/trunk/subversion/libsvn_fs_fs/fs.h
> subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
> subversion/trunk/subversion/libsvn_fs_fs/fs_fs.h
> subversion/trunk/subversion/libsvn_fs_fs/tree.c
> subversion/trunk/subversion/libsvn_fs_util/fs-util.c
>
> Modified: subversion/trunk/subversion/include/private/svn_fs_util.h
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_fs_util.h?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/include/private/svn_fs_util.h (original)
> +++ subversion/trunk/subversion/include/private/svn_fs_util.h Thu Apr 26 19:52:39 2012
> @@ -59,10 +59,8 @@ svn_fs__canonicalize_abspath(const char
> svn_error_t *
> svn_fs__check_fs(svn_fs_t *fs, svn_boolean_t expect_open);
>
> -/* Like svn_fs_get_uuid(), but in libsvn_fs_util and returns a const char *
> - (allocated in RESULT_POOL), or NULL in case of errors. */
> -const char *
> -svn_fs__identifier(svn_fs_t *fs, apr_pool_t *result_pool);
> +/** Temporary, to be removed in the next revision. */
> +#define svn_fs__identifier(fs, unused) ((fs)->uuid)
>
> /* Constructing nice error messages for roots. */
>
>
> Modified: subversion/trunk/subversion/libsvn_fs/fs-loader.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs/fs-loader.c?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs/fs-loader.c (original)
> +++ subversion/trunk/subversion/libsvn_fs/fs-loader.c Thu Apr 26 19:52:39 2012
> @@ -353,16 +353,6 @@ svn_fs_set_warning_func(svn_fs_t *fs, sv
> fs->warning_baton = warning_baton;
> }
>
> -/* Read FS's UUID to cause it to be cached. */
> -/* ### Implementation detail? Without this, r1330906 reenters trails. */
> -static svn_error_t *
> -cache_uuid(svn_fs_t *fs, apr_pool_t *scratch_pool)
> -{
> - const char *uuid;
> - SVN_ERR(svn_fs_get_uuid(fs, &uuid, scratch_pool));
> - return SVN_NO_ERROR;
> -}
> -
> svn_error_t *
> svn_fs_create(svn_fs_t **fs_p, const char *path, apr_hash_t *fs_config,
> apr_pool_t *pool)
> @@ -383,7 +373,6 @@ svn_fs_create(svn_fs_t **fs_p, const cha
>
> SVN_MUTEX__WITH_LOCK(common_pool_lock,
> vtable->create(*fs_p, path, pool, common_pool));
> - SVN_ERR(cache_uuid(*fs_p, pool));
> return SVN_NO_ERROR;
> }
>
> @@ -397,7 +386,6 @@ svn_fs_open(svn_fs_t **fs_p, const char
> *fs_p = fs_new(fs_config, pool);
> SVN_MUTEX__WITH_LOCK(common_pool_lock,
> vtable->open_fs(*fs_p, path, pool, common_pool));
> - SVN_ERR(cache_uuid(*fs_p, pool));
> return SVN_NO_ERROR;
> }
>
> @@ -574,7 +562,6 @@ svn_fs_create_berkeley(svn_fs_t *fs, con
> /* Perform the actual creation. */
> SVN_MUTEX__WITH_LOCK(common_pool_lock,
> vtable->create(fs, path, fs->pool, common_pool));
> - SVN_ERR(cache_uuid(fs, fs->pool)); /* No better pool.. */
> return SVN_NO_ERROR;
> }
>
> @@ -586,7 +573,6 @@ svn_fs_open_berkeley(svn_fs_t *fs, const
> SVN_ERR(fs_library_vtable(&vtable, path, fs->pool));
> SVN_MUTEX__WITH_LOCK(common_pool_lock,
> vtable->open_fs(fs, path, fs->pool, common_pool));
> - SVN_ERR(cache_uuid(fs, fs->pool)); /* No better pool.. */
> return SVN_NO_ERROR;
> }
>
> @@ -1248,7 +1234,8 @@ svn_error_t *
> svn_fs_get_uuid(svn_fs_t *fs, const char **uuid, apr_pool_t *pool)
> {
> /* If you change this, consider changing svn_fs__identifier(). */
> - return svn_error_trace(fs->vtable->get_uuid(fs, uuid, pool));
> + *uuid = apr_pstrdup(pool, fs->uuid);
> + return SVN_NO_ERROR;
> }
>
> svn_error_t *
>
> Modified: subversion/trunk/subversion/libsvn_fs/fs-loader.h
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs/fs-loader.h?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs/fs-loader.h (original)
> +++ subversion/trunk/subversion/libsvn_fs/fs-loader.h Thu Apr 26 19:52:39 2012
> @@ -172,7 +172,7 @@ typedef struct fs_vtable_t
> const svn_string_t *const *old_value_p,
> const svn_string_t *value,
> apr_pool_t *pool);
> - svn_error_t *(*get_uuid)(svn_fs_t *fs, const char **uuid, apr_pool_t *pool);
> + /* There is no get_uuid(); see svn_fs_t.uuid docstring. */
> svn_error_t *(*set_uuid)(svn_fs_t *fs, const char *uuid, apr_pool_t *pool);
> svn_error_t *(*revision_root)(svn_fs_root_t **root_p, svn_fs_t *fs,
> svn_revnum_t rev, apr_pool_t *pool);
> @@ -391,6 +391,9 @@ struct svn_fs_t
> /* FSAP-specific vtable and private data */
> fs_vtable_t *vtable;
> void *fsap_data;
> +
> + /* UUID, stored by open(), create(), and set_uuid(). */
> + const char *uuid;
> };
>
>
>
> Modified: subversion/trunk/subversion/libsvn_fs_base/fs.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/fs.c?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_base/fs.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_base/fs.c Thu Apr 26 19:52:39 2012
> @@ -480,7 +480,6 @@ static fs_vtable_t fs_vtable = {
> svn_fs_base__revision_prop,
> svn_fs_base__revision_proplist,
> svn_fs_base__change_rev_prop,
> - svn_fs_base__get_uuid,
> svn_fs_base__set_uuid,
> svn_fs_base__revision_root,
> svn_fs_base__begin_txn,
> @@ -647,6 +646,15 @@ open_databases(svn_fs_t *fs,
> }
>
>
> +/* Called by functions that initialize an svn_fs_t struct, after that
> + initialization is done, to populate svn_fs_t->uuid. */
> +static svn_error_t *
> +populate_opened_fs(svn_fs_t *fs, apr_pool_t *scratch_pool)
> +{
> + SVN_ERR(svn_fs_base__populate_uuid(fs, scratch_pool));
> + return SVN_NO_ERROR;
> +}
> +
> static svn_error_t *
> base_create(svn_fs_t *fs, const char *path, apr_pool_t *pool,
> apr_pool_t *common_pool)
> @@ -682,6 +690,8 @@ base_create(svn_fs_t *fs, const char *pa
> if (svn_err) goto error;
>
> ((base_fs_data_t *) fs->fsap_data)->format = format;
> +
> + SVN_ERR(populate_opened_fs(fs, pool));
> return SVN_NO_ERROR;;
>
> error:
> @@ -766,6 +776,7 @@ base_open(svn_fs_t *fs, const char *path
> if (svn_err) goto error;
> }
>
> + SVN_ERR(populate_opened_fs(fs, pool));
> return SVN_NO_ERROR;
>
> error:
>
> Modified: subversion/trunk/subversion/libsvn_fs_base/fs.h
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/fs.h?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_base/fs.h (original)
> +++ subversion/trunk/subversion/libsvn_fs_base/fs.h Thu Apr 26 19:52:39 2012
> @@ -108,9 +108,6 @@ typedef struct base_fs_data_t
> transaction trail alive. */
> svn_boolean_t in_txn_trail;
>
> - /* The filesystem UUID (or NULL if not-yet-known; see svn_fs_get_uuid). */
> - const char *uuid;
> -
> /* The format number of this FS. */
> int format;
>
>
> Modified: subversion/trunk/subversion/libsvn_fs_base/tree.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/tree.c?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_base/tree.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_base/tree.c Thu Apr 26 19:52:39 2012
> @@ -3192,17 +3192,7 @@ fs_same_p(svn_boolean_t *same_p,
> svn_fs_t *fs2,
> apr_pool_t *pool)
> {
> - const char *uuid1;
> - const char *uuid2;
> -
> - /* Random thought: if fetching UUIDs to compare filesystems is too
> - expensive, one solution would be to cache the UUID in each fs
> - object (copying the UUID into fs->pool, of course). */
> -
> - SVN_ERR(fs1->vtable->get_uuid(fs1, &uuid1, pool));
> - SVN_ERR(fs2->vtable->get_uuid(fs2, &uuid2, pool));
> -
> - *same_p = ! strcmp(uuid1, uuid2);
> + *same_p = ! strcmp(fs1->uuid, fs2->uuid);
> return SVN_NO_ERROR;
> }
>
>
> Modified: subversion/trunk/subversion/libsvn_fs_base/uuid.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/uuid.c?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_base/uuid.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_base/uuid.c Thu Apr 26 19:52:39 2012
> @@ -48,39 +48,27 @@ txn_body_get_uuid(void *baton, trail_t *
>
>
> svn_error_t *
> -svn_fs_base__get_uuid(svn_fs_t *fs,
> - const char **uuid,
> - apr_pool_t *pool)
> +svn_fs_base__populate_uuid(svn_fs_t *fs,
> + apr_pool_t *scratch_pool)
> {
> - base_fs_data_t *bfd = fs->fsap_data;
>
> SVN_ERR(svn_fs__check_fs(fs, TRUE));
>
> - /* Check for a cached UUID first. Failing that, we hit the
> - database. */
> - if (bfd->uuid)
> - {
> - *uuid = apr_pstrdup(pool, bfd->uuid);
> - }
> - else
> + /* We hit the database. */
> {
> + const char *uuid;
> struct get_uuid_args args;
> - apr_pool_t *scratch_pool = svn_pool_create(pool);
>
> args.idx = 1;
> - args.uuid = uuid;
> + args.uuid = &uuid;
> SVN_ERR(svn_fs_base__retry_txn(fs, txn_body_get_uuid, &args,
> FALSE, scratch_pool));
>
> - if (*uuid)
> + if (uuid)
> {
> - *uuid = apr_pstrdup(pool, *uuid);
> -
> /* Toss what we find into the cache. */
> - bfd->uuid = apr_pstrdup(fs->pool, *uuid);
> + fs->uuid = apr_pstrdup(fs->pool, uuid);
> }
> -
> - svn_pool_destroy(scratch_pool);
> }
>
> return SVN_NO_ERROR;
> @@ -109,7 +97,6 @@ svn_fs_base__set_uuid(svn_fs_t *fs,
> apr_pool_t *pool)
> {
> struct set_uuid_args args;
> - base_fs_data_t *bfd = fs->fsap_data;
>
> SVN_ERR(svn_fs__check_fs(fs, TRUE));
>
> @@ -122,7 +109,7 @@ svn_fs_base__set_uuid(svn_fs_t *fs,
>
> /* Toss our value into the cache. */
> if (uuid)
> - bfd->uuid = apr_pstrdup(fs->pool, uuid);
> + fs->uuid = apr_pstrdup(fs->pool, uuid);
>
> return SVN_NO_ERROR;
> }
>
> Modified: subversion/trunk/subversion/libsvn_fs_base/uuid.h
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_base/uuid.h?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_base/uuid.h (original)
> +++ subversion/trunk/subversion/libsvn_fs_base/uuid.h Thu Apr 26 19:52:39 2012
> @@ -29,12 +29,15 @@ extern "C" {
>
>
>
> +/* Set FS->UUID to the the value read from the database, allocated
> + in FS->POOL. Use SCRATCH_POOL for temporary allocations. */
> +svn_error_t *svn_fs_base__populate_uuid(svn_fs_t *fs,
> + apr_pool_t *scratch_pool);
> +
> +
> /* These functions implement some of the calls in the FS loader
> library's fs vtable. */
>
> -svn_error_t *svn_fs_base__get_uuid(svn_fs_t *fs, const char **uuid,
> - apr_pool_t *pool);
> -
> svn_error_t *svn_fs_base__set_uuid(svn_fs_t *fs, const char *uuid,
> apr_pool_t *pool);
>
>
> Modified: subversion/trunk/subversion/libsvn_fs_fs/caching.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/caching.c?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_fs/caching.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_fs/caching.c Thu Apr 26 19:52:39 2012
> @@ -252,7 +252,7 @@ svn_fs_fs__initialize_caches(svn_fs_t *f
> {
> fs_fs_data_t *ffd = fs->fsap_data;
> const char *prefix = apr_pstrcat(pool,
> - "fsfs:", ffd->uuid,
> + "fsfs:", fs->uuid,
> "/", fs->path, ":",
> (char *)NULL);
> svn_memcache_t *memcache;
> @@ -495,7 +495,7 @@ svn_fs_fs__initialize_txn_caches(svn_fs_
> to start a new transaction later that receives the same id.
> Therefore, throw in a uuid as well - just to be sure. */
> const char *prefix = apr_pstrcat(pool,
> - "fsfs:", ffd->uuid,
> + "fsfs:", fs->uuid,
> "/", fs->path,
> ":", txn_id,
> ":", svn_uuid_generate(pool), ":",
>
> Modified: subversion/trunk/subversion/libsvn_fs_fs/fs.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs.c?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_fs/fs.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_fs/fs.c Thu Apr 26 19:52:39 2012
> @@ -73,7 +73,7 @@ fs_serialized_init(svn_fs_t *fs, apr_poo
> know of a better way of associating such data with the
> repository. */
>
> - key = apr_pstrcat(pool, SVN_FSFS_SHARED_USERDATA_PREFIX, ffd->uuid,
> + key = apr_pstrcat(pool, SVN_FSFS_SHARED_USERDATA_PREFIX, fs->uuid,
> (char *) NULL);
> status = apr_pool_userdata_get(&val, key, common_pool);
> if (status)
> @@ -130,7 +130,6 @@ static fs_vtable_t fs_vtable = {
> svn_fs_fs__revision_prop,
> svn_fs_fs__revision_proplist,
> svn_fs_fs__change_rev_prop,
> - svn_fs_fs__get_uuid,
> svn_fs_fs__set_uuid,
> svn_fs_fs__revision_root,
> svn_fs_fs__begin_txn,
>
> Modified: subversion/trunk/subversion/libsvn_fs_fs/fs.h
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs.h?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_fs/fs.h (original)
> +++ subversion/trunk/subversion/libsvn_fs_fs/fs.h Thu Apr 26 19:52:39 2012
> @@ -218,9 +218,6 @@ typedef struct fs_fs_data_t
> layouts) or zero (for linear layouts). */
> int max_files_per_dir;
>
> - /* The uuid of this FS. */
> - const char *uuid;
> -
> /* The revision that was youngest, last time we checked. */
> svn_revnum_t youngest_rev_cache;
>
>
> Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Thu Apr 26 19:52:39 2012
> @@ -1307,7 +1307,7 @@ svn_fs_fs__open(svn_fs_t *fs, const char
>
> limit = sizeof(buf);
> SVN_ERR(svn_io_read_length_line(uuid_file, buf, &limit, pool));
> - ffd->uuid = apr_pstrdup(fs->pool, buf);
> + fs->uuid = apr_pstrdup(fs->pool, buf);
>
> SVN_ERR(svn_io_file_close(uuid_file, pool));
>
> @@ -7500,17 +7500,6 @@ svn_fs_fs__recover(svn_fs_t *fs,
> }
>
> svn_error_t *
> -svn_fs_fs__get_uuid(svn_fs_t *fs,
> - const char **uuid_p,
> - apr_pool_t *pool)
> -{
> - fs_fs_data_t *ffd = fs->fsap_data;
> -
> - *uuid_p = apr_pstrdup(pool, ffd->uuid);
> - return SVN_NO_ERROR;
> -}
> -
> -svn_error_t *
> svn_fs_fs__set_uuid(svn_fs_t *fs,
> const char *uuid,
> apr_pool_t *pool)
> @@ -7519,7 +7508,6 @@ svn_fs_fs__set_uuid(svn_fs_t *fs,
> apr_size_t my_uuid_len;
> const char *tmp_path;
> const char *uuid_path = path_uuid(fs, pool);
> - fs_fs_data_t *ffd = fs->fsap_data;
>
> if (! uuid)
> uuid = svn_uuid_generate(pool);
> @@ -7540,7 +7528,7 @@ svn_fs_fs__set_uuid(svn_fs_t *fs,
>
> /* Remove the newline we added, and stash the UUID. */
> my_uuid[my_uuid_len - 1] = '\0';
> - ffd->uuid = my_uuid;
> + fs->uuid = my_uuid;
>
> return SVN_NO_ERROR;
> }
> @@ -8709,7 +8697,7 @@ hotcopy_incremental_check_preconditions(
>
> /* Make sure the UUID of source and destination match up.
> * We don't want to copy over a different repository. */
> - if (strcmp(src_ffd->uuid, dst_ffd->uuid) != 0)
> + if (strcmp(src_fs->uuid, dst_fs->uuid) != 0)
> return svn_error_create(SVN_ERR_RA_UUID_MISMATCH, NULL,
> _("The UUID of the hotcopy source does "
> "not match the UUID of the hotcopy "
> @@ -9155,7 +9143,7 @@ hotcopy_create_empty_dest(svn_fs_t *src_
>
> /* Create lock file and UUID. */
> SVN_ERR(svn_io_file_create(path_lock(dst_fs, pool), "", pool));
> - SVN_ERR(svn_fs_fs__set_uuid(dst_fs, src_ffd->uuid, pool));
> + SVN_ERR(svn_fs_fs__set_uuid(dst_fs, dst_fs->uuid, pool));
>
> /* Create the min unpacked rev file. */
> if (dst_ffd->format >= SVN_FS_FS__MIN_PACKED_FORMAT)
>
> Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.h
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs_fs.h?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.h (original)
> +++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.h Thu Apr 26 19:52:39 2012
> @@ -355,12 +355,6 @@ svn_error_t *svn_fs_fs__create(svn_fs_t
> const char *path,
> apr_pool_t *pool);
>
> -/* Store the uuid of the repository FS in *UUID. Allocate space in
> - POOL. */
> -svn_error_t *svn_fs_fs__get_uuid(svn_fs_t *fs,
> - const char **uuid,
> - apr_pool_t *pool);
> -
> /* Set the uuid of repository FS to UUID, if UUID is not NULL;
> otherwise, set the uuid of FS to a newly generated UUID. Perform
> temporary allocations in POOL. */
>
> Modified: subversion/trunk/subversion/libsvn_fs_fs/tree.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/tree.c?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_fs/tree.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_fs/tree.c Thu Apr 26 19:52:39 2012
> @@ -1925,17 +1925,7 @@ fs_same_p(svn_boolean_t *same_p,
> svn_fs_t *fs2,
> apr_pool_t *pool)
> {
> - const char *uuid1;
> - const char *uuid2;
> -
> - /* Random thought: if fetching UUIDs to compare filesystems is too
> - expensive, one solution would be to cache the UUID in each fs
> - object (copying the UUID into fs->pool, of course). */
> -
> - SVN_ERR(fs1->vtable->get_uuid(fs1, &uuid1, pool));
> - SVN_ERR(fs2->vtable->get_uuid(fs2, &uuid2, pool));
> -
> - *same_p = ! strcmp(uuid1, uuid2);
> + *same_p = ! strcmp(fs1->uuid, fs2->uuid);
> return SVN_NO_ERROR;
> }
>
>
> Modified: subversion/trunk/subversion/libsvn_fs_util/fs-util.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_util/fs-util.c?rev=1331050&r1=1331049&r2=1331050&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_fs_util/fs-util.c (original)
> +++ subversion/trunk/subversion/libsvn_fs_util/fs-util.c Thu Apr 26 19:52:39 2012
> @@ -171,22 +171,3 @@ svn_fs__append_to_merged_froms(svn_merge
>
> return SVN_NO_ERROR;
> }
> -
> -const char *
> -svn_fs__identifier(svn_fs_t *fs, apr_pool_t *result_pool)
> -{
> - const char *uuid;
> - svn_error_t *err;
> -
> - err = fs->vtable->get_uuid(fs, &uuid, result_pool);
> - if (err)
> - {
> - /* Log the error and discard it. */
> - fs->warning(fs->warning_baton, err);
> - svn_error_clear(err);
> - return NULL;
> - }
> -
> - return uuid;
> -}
> -
>
Received on 2012-05-08 13:01:14 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.