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

Re: svn commit: r22496 - branches/multiple-moves/subversion/include

From: Ed Price <ed.price_at_gmail.com>
Date: 2006-11-29 16:09:30 CET

Hi,

In log message for previous commit you wrote (more or less; emphasis
added):

> ***Improve*** atomicity in the case of wc->wc moves and copies.
> Instead of performing existence checks on each item as we go,
> perform them all up front. In this way, we catch errors before we
> start performing any of the moves or copies, ***ensuring*** success
> when we actually do the action.

Hey! There is a big difference between *improving* vs *ensuring*
atomicity.

IIUC, you are *not* ensuring it, only improving the chances of it.

Someone could still change the files (eg delete them) after your check
and before the real operation. The computer could lose power halfway
through the real copies. I don't *think* it is going to handle that
case is it? The client is not built on a transactional filesystem
like the server is...

Anyway, this commit (r22496), saying that the operations are atomic in
the docs, is therefore wrong. Please change it to say (if anything)
"Some effort is made to be atomic" or whatever instead, because that's
the truth. Don't say it *is* atomic, because it's not.

Thanks,
-Ed

PS You're doing some great work!!! And if I'm wrong I apologize for
wasting your time. But please consider what I've said. I'm sorry I
don't have more time to check myself more carefully. Sorry no patch
either... I'm rushed but wanted to get this out there...

On 11/28/06, hwright@tigris.org <hwright@tigris.org> wrote:
> Author: hwright
> Date: Tue Nov 28 18:39:01 2006
> New Revision: 22496
>
> Log:
> On the multiple moves branch:
> Documentation tweak.
>
> * subversion/include/svn_client.h
> (svn_client_copy_into, svn_client_move_into): Add a doc note regarding
> atomicity.
>
>
> Modified:
> branches/multiple-moves/subversion/include/svn_client.h
>
> Modified: branches/multiple-moves/subversion/include/svn_client.h
> URL: http://svn.collab.net/viewvc/svn/branches/multiple-moves/subversion/include/svn_client.h?pathrev=22496&r1=22495&r2=22496
> ==============================================================================
> --- branches/multiple-moves/subversion/include/svn_client.h (original)
> +++ branches/multiple-moves/subversion/include/svn_client.h Tue Nov 28 18:39:01 2006
> @@ -1991,6 +1991,8 @@
> *
> * Other arguments are the same as svn_client_copy3().
> *
> + * This operation is atomic, either all paths will be copied, or none.
> + *
> * @since New in 1.5.
> */
> svn_error_t *
> @@ -2124,6 +2126,8 @@
> * control, or the URL of a versioned item in the repository. They
> * must also all be of the same type, e.g., all URLs or all WC paths.
> *
> + * This operation is atomic, either all paths will be moved, or none.
> + *
> * @a dst_dir must be a directory.
> *
> * @since New in 1.5.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svn-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: svn-help@subversion.tigris.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Nov 29 16:10:01 2006

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