Ivan Zhakov <i...@visualsvn.com> writes:

> 1. Make svn_io_file_name() consistently return error for cross volume
> renames by fixing APR or using platform specific code.
> 2. For all platforms handle APR_STATUS_IS_EXDEV() like this: copy file
> to temporary file in the same folder as destination and then rename
> it.
>
> I'm ready to implement it if nobody object.

We do most (all?) of that.  svn_io_file_rename() calls apr_file_rename()
and on Unix that calls rename() which can fail with EXDEV.  When that
happens svn_io_file_rename() fails.

svn_io_file_move() catches EXDEV and copies the file to a temporary in
the destination directory and then calls apr_file_rename().

-- 
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*

Reply via email to