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

Re: [PATCH] Check UUID at RA connection opening

From: Daniel Shahaf <d.s_at_daniel.shahaf.co.il>
Date: Fri, 4 Apr 2008 12:51:26 +0300

Pinging myself. The patch below is blocked on the Neon UUID caching fix
Karl suggested. I already wrote that (ra_neon) patch, and will install
Apache today to test it. (I would have installed it in advance had I
known it would be necessary, of course.)

Daniel

Daniel Shahaf wrote on Mon, 24 Mar 2008 at 22:06 +0200:
> Currently, the repository's uuid is not always checked when creating an RA
> connection. This results in 'svn update' overwriting the working copy's
> uuid with the repository's new uuid, when the latter has changed.
>
> Following discussion on IRC a few weeks ago, a check for uuid equality is
> added in svn_ra_open2(), which is revved to take a const char *uuid
> argument. (durin42 also volunteered to write the patch, but I understood
> from him that he was busy and didn't mind that I do it if I had time.)
>
> Two places in the code already validate the uuid by themselves:
> open_source_session() in svnsync, and validator_func() in
> libsvn_client/relocate.c (which is an svn_wc_relocation_validator3_t).
> I have not modified them.
>
> [[[
> Check repository UUID when creating an RA session. This fixes an issue
> where "svn update" would silently overwrite the UUID of a working copy
> if the repository UUID has changed.
>
> Several tests in svnadmin_tests which silently took advantage of this
> are fixed too.
>
> * subversion/include/svn_ra.h
> (svn_ra_open2, svn_ra_open3): New API revision.
>
> * subversion/libsvn_ra/ra_loader.c
> (svn_ra_open2, svn_ra_open3): New API revision.
>
> * subversion/libsvn_client/ra.c
> (svn_client__open_ra_session_internal):
> When having a working copy, pass its uuid to svn_ra_open3().
>
> * subversion/tests/cmdline/update_tests.py
> (update_uuid_changed): New test.
> (test_list): Run it.
>
> * subversion/tests/cmdline/svnadmin_tests.py
> (extra_headers, extra_blockcontent, empty_date):
> Load dumpfile with '--ignore-uuid' in order to not change the
> repository
> uuid, since a working copy already has been checked out from it.
>
> * subversion/tests/cmdline/switch_tests.py
> (switch_change_repos_root): Change expected error message.
>
> * subversion/include/svn_error_codes.h
> (SVN_ERR_RA_UUID_MISMATCH): New error.
> ]]]
>
> Daniel
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-04-04 11:55: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.