"Max Bowsher" <maxb@ukf.net> writes:
> svn_client_move has been revved to svn_client_move2 in 1.2, which
> makes it an attractive idea to get some further planned changes to
> this API out of the way now too.
There is another enhancement that has been requested: allow multiple
source URLs to be moved or copied into a single destination URL,
i.e. make the source argument into an APR array.
> See issue 2188 for details, but the short version is:
> Clients of our API want to be able to disable the implicit behaviour
> of "if copy destination exists and is a directory, append basename of
> the source to the destination" that we have now. This behaviour makes
> sense in some circumstances, but can prove a great annoyance in others.
>
> So, the initial obvious solution is trivial - a new boolean parameter.
Another trivial solution is to move the logic out of libsvn_client
altogether and put it in the application.
> HOWEVER, I think there is a better API change:
>
> Add a new tri-state enum parameter:
>
> enum {
> svn_copymove_collision_error,
> svn_copymove_collision_make_child,
> svn_copymove_collision_replace
> };
>
> To illustrate, file:///repos/A and file:///repos/B are two directories
> that exist:
>
>
> svn_copymove_collision_error:
> svn cp file:///repos/A file:///repos/B
> - causes error.
>
> svn_copymove_collision_make_child:
> svn cp file:///repos/A file:///repos/B
> - copies A to file:///repos/B/A
>
> svn_copymove_collision_replace:
> svn cp file:///repos/A file:///repos/B
> - is equivalent to:
> svn rm file:///repos/B
> svn cp file:///repos/A file:///repos/B
> except that it uses only 1 revision number.
>
>
> I am particularly interested in this, because I have seen emails from
> quite a few disappointed users wanting to "move a tag" in just 1
> revision, instead of the 2-stage process which is the only workaround
> now (rm, cp).
I wanted to something like that earlier this year, I wrote a program
to do it. My program bypasses libsvn_client and drives an RA commit
editor directly to combine multiple mv, cp and rm commands on URLs
into a single commit.
--
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Apr 1 19:27:16 2005