Hi,

When using briefcase.copy and briefcase.move, I've been surprised by a
weird difference of semantics between operating collections and
resources.

By experimentation, I've found that when copying/moving collections,
the "to_path" parameter should refer to the whole destination name of
the collection. That was expected, as it is the same as COPY/MOVE
WebDAV semantics.

Things get more interesting when operating over resources. Here the
"to_path" parameter should point to the collection which will contain
the copy. Otherwise, it doesn't work. That wasn't expected, nor
documented.

More importantly, the problem of that approach is that *there is now
way to change the name of the resource*. Thus, you *can't rename
resources* (i.e, change it's name but keep it under the same
collection), *nor make copies of a resource inside the same
collection*.

Looking at the source code, looks like the problem is that all paths
are normalized as _collection_ paths (using
dav_path_normalize(to_path, 'C')).

Note that, as one could expect, this also affects the ubiquity
commands ods-copy-briefcase and ods-move-briefcase.

Regards,
-- 
Leo Soto M.
http://blog.leosoto.com

Reply via email to