Daniel Rall wrote:
> On Thu, 07 Dec 2006, hwright@tigris.org wrote:
> ...
>> On the multiple moves branch:
>> Merge the svn_client_[copy,move] and svn_client_[copy,move]_into APIs. The
>> idea of the new APIs is to Do The Right Thing when given a list of source paths
>> and a destination path. The new APIs also have a flag to preserve compatibility
>> with the changes introduced in r18315 to fix issue 2188.
>
> Bravo! I think this addressed issue #2188 well. Stefan, can you
> confirm?
Interested parties:
I've reworded the API documentation in r22612. Hopefully, it will be a
bit clearer what the API does and the purpose of the
[copy,move]_as_child flag.
Dave Glasser does bring up an interesting point:
> The more I think about it, the more it seems like two separate APIs is
> better than one API with a boolean that entirely changes its
> semantics. For example, I found the documentation for the separated
> _into function easier to understand than the documentation for the
> combined function. (I'm still not sure what the combined API should
> do if you pass a multiple-element array but set copy_as_child to
> FALSE.) (Also, in the common case of a single-file-copy/move, this
> requires extra code to create an array.)
I think that we all agree that we want some kind of interface which has
behavior similar to the traditional cp/mv commands. Whether that
interface should exist as part of libsvn_client, or simply in the client
application is another matter. The merged API is an attempt to present
that kind of interface, but also offer a bit more control to API
consumers who want it.
I still don't know what the Right Thing here is; there may not be one.
I suspect that we'll end up with some kind of balancing act, and r22599
is an attempt to reach that balance.
-Hyrum
Received on Fri Dec 8 18:11:25 2006